Впервые в PowerShell, но мне нравится тот факт, что я так много могу сделать так быстро:)
В любом случае, я запускаю удаленный процесс в скрипте PowerShell следующим образом:
$compname = "MY-PC"
$myinstallcmd = "c:\install\myprog.exe /s"
$proc = Invoke-WmiMethod -class Win32_Process -name Create -ArgumentList ($myinstallcmd) -ComputerName $compname
На большинстве компьютеров, которые я пробовал, командлет Invoke-WmiMethod работает нормально, но на одном компьютере он зависает. Теперь я хочу получить статус запущенного процесса, и если он завис, убить его и записать в журнал, а затем двигаться дальше.
Я нашел возможный способ сделать это в посте
Удаленный запуск процесса в Powershell, получение% ERRORLEVEL% в Windows - однако, когда я пытаюсь выполнить Register-WmiEvent для процесса $ proc.ProcessId, я получаю страшную ошибку 0x80070005 (E_ACCESSDENIED)
. .. Я использую хост PowerShell от имени администратора домена.
Может ли кто-нибудь предложить способ, которым я могу получить статус в процессе, который я начал, и иметь возможность предпринять действие, основанное на статусе?
Спасибо!