使用powershell和wmi停止然后启动远程进程

时间:2015-01-21 16:29:59

标签: powershell wmi remote-process

我正在研究通过PS和WMI远程停止和重启进程的方法。我可以轻松地停止/终止该过程,但我也想重新启动该过程,我遇到了这样的问题。下面是我用来远程停止/终止进程的脚本。知道我可以添加什么,然后重新启动相同的过程吗?

$comp = read-host -Prompt "Enter computer name"
(Get-WmiObject Win32_Process -ComputerName $comp | ?{     $_.ProcessName -match "PhotoScreensaver.scr" }).Terminate()

1 个答案:

答案 0 :(得分:1)

虽然我确信你可以用WMI做到这一点,但也有一种更简单的方法。 Powershell有一个名为Invoke-Command的内置cmdlet,用于远程执行代码。还有Start-ProcessStop-Process用于控制流程。

Invoke-Command -ComputerName $Computer -ScriptBlock {
    Start-Process $ProcessName
    Stop-Process $ProcessName
}

如果您在域环境中,则可能必须使用-Authentication Kerberos选项获取远程计算机的权限。

我还要注意,这些进程将在远程计算机上的不同会话中打开。如果用户已登录,则不会在其会话中执行。你需要另一个来自SysInternals家伙的PSExec工具。