我试图在我的域中部署一个使用Powershell的软件,由于某种原因,脚本在“启动进程”cmdlet中挂起。
以下是我所拥有的:
Invoke-Command -ComputerName $servers -Credential $creds -ScriptBlock {
$args = "/param1=`"{0}`" /param2=`"{1}`" /param3=1 /S" -f "value1", "value2"
Start-Process "c:\temp\installer.exe" -Wait -ArgumentList $args
}有趣的是,如果手动将Enter-PSSession放入单个服务器并运行:
Enter-PSSession one_server
cd c:\temp\
$args = "/param1=value1 /param2=value /param3=1 /S"
Start-Process .\installer.exe -Wait -ArgumentList $args有什么想法吗?谢谢
发布于 2020-04-03 23:01:42
最终的解决方案是权限提升,这需要"-Verb RunAs“。特别感谢Mark让我知道保留的$arg变量。
Invoke-Command -ComputerName $servers -Credential $creds -ScriptBlock {
$args = "/param1=`"{0}`" /param2=`"{1}`" /param3=1 /S" -f "value1", "value2"
Start-Process "c:\temp\installer.exe" -Wait -ArgumentList $args -Verb RunAs
}发布于 2020-04-03 17:11:17
将变量$args更改为另一个名称,如$a或$arguments。$args是保留的,是一个system.array对象。您希望创建一个字符串。
https://stackoverflow.com/questions/61016368
复制相似问题