Запуск установщика через Powershell и WinRM и ничего не происходит
В настоящее время я работаю над сценарием Powershell для удаленного запуска некоторых установщиков Microsoft Hotfix на нескольких серверах Windows Server 2008 R2, которыми я управляю. По сути, сценарий копирует все соответствующие файлы на сервер, а затем запускает установщик с помощью 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"
}
}
Если я запускаю команду "Пуск-Процесс" локально на сервере, программа установки запускается правильно. Однако при попытке запустить его удаленно ничего не происходит (на самом деле, я вижу, как установщик запускается в диспетчере задач, но он закрывается через пару секунд и не запускается).
Я попытался дать Invoke-Command -Credentials, я отключил UAC на сервере и убедился, что мои настройки WinRM (с запущенным "winrm quickconfig" и настройкой TrustedHosts равны *) верны. Я также попытался с помощью сценария Invoke-Command запустить локальный сценарий Powershell для запуска программы установки и изменить аргумент с "/passive" на "quiet" (в случае, если он не может удаленно запустить что-то, имеющее пользовательский интерфейс), но опять же, без кубиков.
Могу ли я попробовать что-нибудь еще, или я просто не смогу это сделать?
1 ответ
Ну, мне немного стыдно, но я поняла, что делаю неправильно. По сути, мне нужно было добавить параметр -Wait в командлет Start-Process. Конечный код выглядит так:
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
}
}