Powershell调用命令的问题

我正试图让应用程序使用PowerShell安装在远程服务器上。 这是我正在使用的脚本:

$ cred = Get-Credential
$ s = New-PSSession -ComputerName $ ServerName -Credential $ cred

Invoke-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会话closures,但应用程序从不安装,msiexec从不closures。

任何帮助,将不胜感激。

谢谢,

扎克

您需要首先在本地复制软件包。 一旦你开始远程处理,你不能再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 } 

我希望它有帮助。