Использование powershell и wmi для остановки и запуска удаленного процесса
Я работаю над способом удаленной остановки и перезапуска процесса через PS и WMI. Я могу легко остановить / прекратить процесс, но я бы тоже хотел перезапустить процесс, и у меня возникают проблемы с этим. Ниже приведен скрипт, который я использую для удаленной остановки / завершения процесса. Любая идея, что я могу добавить к этому, который затем перезапустит тот же процесс?
$comp = read-host -Prompt "Enter computer name"
(Get-WmiObject Win32_Process -ComputerName $comp | ?{ $_.ProcessName -match "PhotoScreensaver.scr" }).Terminate()
1 ответ
Хотя я уверен, что вы могли бы сделать это с WMI, есть и более простой способ. Powershell имеет встроенный командлет под названием Invoke-Command
который предназначен для удаленного выполнения кода. Есть также Start-Process
а также Stop-Process
для управления процессами.
Invoke-Command -ComputerName $Computer -ScriptBlock {
Start-Process $ProcessName
Stop-Process $ProcessName
}
Если вы находитесь в доменной среде, возможно, вам придется использовать -Authentication Kerberos
возможность получить права на удаленный компьютер.
Я также хотел бы отметить, что эти процессы будут открываться в другом сеансе на удаленном компьютере. Если пользователь вошел в систему, он не будет выполняться в своем сеансе. Вам нужен другой инструмент, как PSExec
от парней SysInternals для этого.