2012-08-30 45 views
0

我知道还有很多其他方法可以做到这一点,但我想知道如何自动填写窗口的密码问题作为命令运行。C++ Windows - 填充系统密码字段(“运行方式”)

system("runas /user:\"benedikt\" \"xy.exe\""); 

有没有办法做到这一点?我搜索了很长时间,但我只发现了很多工具在做我想做的事,而不是为自己做这件事。 PS:我不想使用任何.Net函数。

+1

请参阅[为什么RunAs程序不能在命令行上接受密码?](http://blogs.msdn.com/b/oldnewthing/archive/2004/11/29/271551.aspx)。 –

+0

@ Christian.K根据我的说法,该网页的链接及其内容的简短描述将是一个很好的答案。 – Default

回答

3

好吧,我在这里出差,因为我不是100%确定没有一些(令人费解的)方式来使用股票runas来实现您正在寻找的内容。然而,Why doesn't the RunAs program accept a password on the command line?暗示,在命令行,批处理文件和可以查看命令行的工具(如Process Explorer)中,并未故意使用纯文本密码来防止“安全问题”。

顺便说一句,一个简单的echo <password> | runas /user:<user> <command>似乎不工作,要么(它跳过提示输入密码,但密码本身是没看过runas似乎)。

所以我想你不得不采取其他方式,比如使用真正的API背后:CreateProcessWithLogin

+0

msdn链接不起作用。你的意思是[这一个](http://msdn.microsoft.com/en-us/library/windows/desktop/ms682431(v = vs.85).aspx)? – Default

+0

我同意。我会着眼于编写一个小型的10至20行控制台程序,将参数填充到CreateProcessWithLogin中。对于额外信贷,以某种方式加密密码。 – drescherjm

+0

嗯。 msdn链接对我来说也不起作用。下面是一个使用示例代码的链接。 http://msdn.microsoft.com/en-us/library/windows/desktop/ms682431%28v=vs.85%29.aspx – drescherjm