批处理文件中的 Runas 密码

Runas Password in Batchfile

我想 运行 一个包含 运行as 命令的批处理文件。 是否可以 link 批处理文件中的密码? 例如:运行as /profile /user\domain 密码 预先感谢您的回答

替代解决方案

看起来好像 runas 不允许你想要的东西(没有严重损害安全......见下文)。但是,有一个名为 PsExec 的 third-party 实用程序 确实 允许这样做。来自 Sysinternals PsExec page:

Usage: psexec [\computer[,computer2[,...] | @file\]][-u user [-p psswd][-n s]
              [-r servicename][-h][-l][-s|-e][-x][-i [session]]
              [-c executable [-f|-v]][-w directory][-d]
              [-<priority>][-a n,n,...] cmd [arguments]

(注意:使用 PsExec 的想法来自 Lauren7060 对 this question on Spiceworks 的回答。

所以,类似于:

psexec -u MYUSER -p MYPASSWORD MYBATCH.BAT

应该做你想做的。


什么不起作用

如您所见,runas 通常会提示用户输入密码。有趣的是,您可以将数据通过管道传输到 runas:

echo password | runas ...

或从文件重定向输入:

runas ... < PASSWORD.TXT

runas不会提示输入密码。但是,我可以 notrunas 接受密码有效,但是我格式化了数据。在后一种情况下(从文件重定向),我尝试了使用和不使用 line-ending,但均无效。我的猜测是pipe/redirect足以阻止runas提示输入密码,但它并没有真的 读了 stdin 的任何东西。 this article on the Tech Torials website 部分支持它描述了一种方法,您 可以 使用 runas 而不会提示输入密码,但是 如果您将帐户密码设置为空字符串。

我也找到了如何做的方法 this.But 不幸的是我找不到任何方法如何在 internet.Then 我发现(从自己的)一种方法,你可以不用使用任何第三方 software.You 可以通过使用批处理脚本和 vbs 来做到这一点。 首先,我创建了一个 vbs 文件,用于将密码发送到命令提示符,然后按回车键 automatically.I 暂停脚本 1 秒,以便在 运行 runas 命令后输入密码。 只需像这样创建一个文件:-

::正在创建 vbs 文件以向 runas 命令提供密码:-

 echo Set x=CreateObject("wscript.shell")>C:\users\%username%\Desktop\pass.vbs
        echo wscript.sleep 1000>>C:\users\%username%\Desktop\pass.vbs
        echo x.sendkeys "<password of user>">>C:\users\%username%\Desktop\pass.vbs
        echo x.sendkeys "{enter}">>C:\users\%username%\Desktop\pass.vbs
        start C:\users\%username%\Desktop\pass.vbs
        runas /user:<Username for which you want> "<File that you want to run>"