我正在尝试使用Invoke-Command powershell cmdlet来安装MSI安装程序。从本地计算机上的powershell和正确的目录中,以下工作:
./setup /quiet
以下似乎不起作用:
$script = { param($path) cd "$path" & ./setup /quiet return pwd } return Invoke-Command -ComputerName $product.IPs -ScriptBlock $script -Args $sourcePath
出于测试目的,我正在处理传入“。”的本地机器。用于-ComputerName参数。在传递给Invoke-Command之前,路径已经过验证,并且在此代码的不同版本上生成的错误表明路径是正确的。我也在远程调用设置时尝试使用和不使用“&”。其他Invoke-Command调用正在运行,所以我怀疑这是一个权限问题。我已经验证了pwd调用的返回是预期的目录。
如何让安装工作?
答案 0 :(得分:0)
您可以尝试在脚本块中使用Start-Process:
cd $ path start-process setup.exe -arg“/ quiet”
不确定您是否想要或需要等待。查看Start-Process的帮助。
答案 1 :(得分:0)
尝试在本地计算机上远程执行脚本时遇到了奇怪的问题。换句话说,远程PowerShell到本地机器。它回来时出现了一个错误,似乎说机器上没有启用PowerShell远程处理,但确实如此。我可以从另一台机器远程运行脚本到目标,但是当使用远程连接到同一个盒子时,问题就会出现。
Enable-PSRemoting -force
。Set-ExecutionPolicy Unrestricted
。如果策略设置为RemoteSigned
,则可能是问题所在。您可能还希望验证运行脚本的用户(本地,但使用远程处理)具有“作为服务登录”或批处理作业的权限。只是在那里猜测,如果上面的列表没有解决任何问题。