在多台远程计算机上终止进程

时间:2014-04-18 19:49:45

标签: powershell process scripting remote-access psexec

我看起来标题是在多台远程计算机上杀死一个进程(例如name.exe)。我可以使用pskill或taskkill单独使用(例如): pskill -t \ -u -p name.exe 但这对50多台机器来说变得不切实际。

有没有办法让它读取IP地址的文本文件,如psexec使用@C:\ name.txt或PowerShell或类似的东西?

所有设备都在同一个域中。 提前感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

如果您有一个包含机器列表的文本文件,您可以通过以下方式轻松完成:

get-content serverlist.txt | Foreach-object {& pskill -t \\$_ -u -p name.exe}

答案 1 :(得分:1)

在Powershell中有很多方法可以做到这一点,比如WMI,Invoke-command等。 以下是使用WMI执行此操作的示例:

$cred = get-credential

它将弹出Credential。这样,您可以确保在脚本中看不到凭据。

(Get-Content 'c:\Temp\Computers.txt') | ForEach-Object {
          Get-WmiObject -computer $_ -class win32_process  -filter "name = 'name.exe'" -credential $cred| %{$_.terminate()} | out-null
        }