Windows-Server-2008-R2

通過 Powershell 和 WinRM 啟動安裝程序,但沒有任何反應

  • November 1, 2013

我目前正在編寫一個 Powershell 腳本,以便在我管理的多個 Windows Server 2008 R2 伺服器上遠端執行一些 Microsoft Hotfix 安裝程序。基本上,腳本將所有適當的文件複製到伺服器,然後通過 Invoke-Command 執行安裝程序,如下所示:

function InstallCU {
   Write-Host "Installing June 2013 CU..."
   Invoke-Command -ComputerName $ServerName -ScriptBlock {
       Start-Process "c:\aaa\prjcusp2\ubersrvprj2010-kb2817530-fullfile-x64-glb.exe" -ArgumentList "/passive"
   }
}

如果我在伺服器本地執行“Start-Process”命令,安裝程序執行正常。但是,當嘗試遠端執行它時,什麼也沒有發生(實際上,我可以看到安裝程序在任務管理器中啟動,但它在幾秒鐘後關閉並且沒有執行)。

我已嘗試提供 Invoke-Command -Credentials,已關閉伺服器上的 UAC,並確保我的 WinRM 設置(執行“winrm quickconfig”並將 TrustedHosts 設置為 *)是正確的。我還嘗試讓 Invoke-Command 腳本執行本地 Powershell 腳本來執行安裝程序並將參數從“/被動”更改為“安靜”(以防它無法遠端啟動具有 UI 的東西),但是再次,沒有骰子。

還有什麼我可以嘗試的,還是我不能做到這一點?

好吧,我感到有點羞愧,但我知道我做錯了什麼。基本上,我需要將 -Wait 參數添加到 Start-Process cmdlet。最終程式碼如下所示:

function InstallCU {
   Write-Host "Installing June 2013 CU..."
   Invoke-Command -ComputerName $ServerName -ScriptBlock {
       Start-Process "c:\aaa\prjcusp2\ubersrvprj2010-kb2817530-fullfile-x64-glb.exe" -ArgumentList "/passive" -Wait
   }
}

引用自:https://serverfault.com/questions/550146