批处理文件中的 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
将不会提示输入密码。但是,我可以 not 让 runas
接受密码有效,但是我格式化了数据。在后一种情况下(从文件重定向),我尝试了使用和不使用 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>"
我想 运行 一个包含 运行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
将不会提示输入密码。但是,我可以 not 让 runas
接受密码有效,但是我格式化了数据。在后一种情况下(从文件重定向),我尝试了使用和不使用 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>"