我有一个名为test.bat
的批处理文件。我在test.bat
文件中调用以下说明:
start /min powershell.exe %sysdrive%\testScripts\testscript1.ps1
当我通过命令提示符运行时,我的testscript运行成功。我想以管理员身份运行它(就像我创建了一个桌面快捷方式并以管理员身份运行。它不应该提示任何用户名或密码。)
我尝试在上面/elevate
中添加/NOUAC
和test.bat
参数,但没有运气。我该如何解决这个问题?
我知道如何手动完成,但我希望从命令提示符执行此操作。
(按Marnix Klooster):...不使用任何其他工具,例如an answer to Super User question How to run program from command line with elevated rights中建议的工具。)
答案 0 :(得分:82)
试试这个:
runas.exe /savecred /user:administrator "%sysdrive%\testScripts\testscript1.ps1"
第一次保存密码,再也不会问。也许当您更改管理员密码时,系统会再次提示您。
答案 1 :(得分:22)
请参阅此TechNet文章:Runas command documentation
从命令提示符:
C:\> runas /user:<localmachinename>\administrator cmd
或者,如果您已连接到域:
C:\> runas /user:<DomainName>\<AdministratorAccountName> cmd
答案 2 :(得分:6)
看起来psexec -h
是这样做的方法:
-h If the target system is Windows Vista or higher, has the process
run with the account's elevated token, if available.
哪个......似乎没有在 Sysinternals - PsExec 的在线文档中列出。
但它适用于我的机器。