求助:创建Bat文件以指定域用户运行PowerShell执行PS1脚本失败
解决用runas指定账户运行PowerShell脚本的问题
你遇到的错误是因为runas命令的参数格式不正确:你把powershell.exe的路径单独用引号包裹,后面的-file和脚本路径被runas当成了自己的参数,而非传递给PowerShell,导致命令解析失败,直接退出而没有提示密码。
正确的命令格式
将PowerShell的完整启动命令(包括路径、参数和脚本路径)全部放在一对双引号内,让runas把整个内容作为要执行的程序及其参数:
runas /user:domain\user "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -File C:\Temp\script.ps1"
特殊场景处理
脚本路径包含空格:
用单引号包裹脚本路径,避免路径被截断:runas /user:domain\user "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -File 'C:\Temp\My Script.ps1'"或者在批处理中用
^转义双引号:runas /user:domain\user "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -File ^"C:\Temp\My Script.ps1^""隐藏PowerShell窗口:
添加-WindowStyle Hidden参数,让脚本在后台执行:runas /user:domain\user "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -WindowStyle Hidden -File C:\Temp\script.ps1"
验证效果
执行上述命令后,会正常弹出密码输入提示,输入正确密码后,PowerShell会以指定账户身份自动运行目标脚本。
内容的提问来源于stack exchange,提问作者chatmandu
相关产品推荐
相关产品推荐

