我正在尝试使用PowerShell在远程服务器上安装应用程序。这是我正在使用的脚本:
$ cred = Get-Credential
$ s = New-PSSession -ComputerName $ ServerName -Credential $ credInvoke-Command -Session $ s -ScriptBlock {Start-Process -FilePath" c:\ windows \ system32 \ msiexec.exe" -ArgumentList" / i \\ computer \ e $ \ installer.msi / qn" -Wait}
Remove-PSSession -ComputerName $ ServerName
如果我直接在远程计算机上运行以下命令,它会很好地执行:
Start-Process -FilePath" c:\ windows \ system32 \ msiexec.exe" -ArgumentList" / i \\ computer \ e $ \ installer.msi / qn" -Wait
但是当我作为Invoke-Command的一部分远程运行时,PS会话打开,脚本运行,msiexec在远程计算机上启动,然后PS会话关闭但应用程序永远不会安装,msiexec永远不会关闭。
任何帮助都将不胜感激。
谢谢,
扎克
答案 0 :(得分:3)
您需要先在本地复制软件包。 一旦开始远程连接,就不能再进行UNC了。
目的地可以是服务器/计算机上的任何位置。 我使用温度,但不管你喜欢什么 另外,我喜欢使用$ env:windir \ temp,以防万一。
Copy-item "\\servershare\File.msi" -conatiner -recurse `
\\$Computer\c$\windows\temp\
Invoke-Command -Computername $Computer -credential $cred -ScriptBlock {
Start-Process -FilePath `
"c:\windows\system32\msiexec.exe" `
-ArgumentList "/i `
\\computer\e$\installer.msi /qn" -Wait
}
我希望它有所帮助。