如何在批处理文件中添加密码以自动进行身份验证?


13

我正在尝试以xcopy管理员身份在批处理文件中运行命令。这是正确的命令,如何将密码传递给它?

runas /noprofile /user:Domain Name\user account

Answers:


14

要自动进行身份验证,请添加/savecred标志。您必须在脚本的首次运行时输入密码,但此后将保存该密码。

意识到这runas将能够使用保存的凭据来执行任何给定程序,因此在进行此操作之前,请考虑一下这可能是一个安全问题。

不过,您的用法是正确的,只需在最后添加程序路径。

runas /noprofile /user:joe@example.com /savecred script.bat
要么
runas /noprofile /user:joe-pc\joe /savecred script.bat

要删除保存的凭据,请在“控制面板”中搜索“ 凭据管理器”


4

runas运行批处理文件以执行指定命令时,该命令应提示您输入凭据。只要在cmd.exe中运行它即可。这是由于需要必要的标准输入来提示输入密码。您不能只双击它。将密码以明文形式存储在批处理文件中是一个坏主意,因为它 不安全。这就是为什么它会在运行时提示。

您可以右键单击可执行文件,然后单击Run as Administrator,而不使用runas命令。这可能是您正在寻找的解决方案。

如果要将任务作为计划任务运行,则可以将其设置为以其他用户身份运行。


我知道将密码存储在纯文本格式中是不安全的,但是有什么方法可以自动进行身份验证吗?
joe

最好的方法是右键单击可执行文件&Run as Administrator,或者将任务设置为以预定用户身份作为计划任务运行。以管理员身份验证的任何其他选项都会带来一些重大的安全风险。Windows似乎没有此功能。如果您想了解有关此主题的更多信息,请参见Windows的setuidsetuid在UNIX环境中用于允许非管理员以root(admin)身份运行程序。使用的程序setuid必须经过仔细编码,以免产生漏洞。
BrenanK

为了清楚起见,setuid可以配置为承担其他用户的特权以及Unix系统上的root用户。
BrenanK

1

您可以在调用批处理文件时使用RunAs(右键单击批处理文件,然后单击runas)以使批处理以管理员身份运行。我怀疑runas在批处理中不起作用。我建议不要将密码放在批处理文件中,即使它确实起作用,批处理文件也是纯文本格式,因此您最好将密码放在监视器的便签纸上。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.