通过 Powershell 和 WinRM 启动安装程序,但没有任何反应

通过 Powershell 和 WinRM 启动安装程序,但没有任何反应

我目前正在编写一个 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 脚本来运行安装程序,并将参数从“/passive”更改为“quiet”(以防它无法远程启动具有 UI 的东西),但同样,没有成功。

还有什么我可以尝试的吗,或者我根本无法做到这一点?

答案1

好吧,我感到有点惭愧,但我弄清楚了我做错了什么。基本上,我需要将 -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
    }
}

相关内容