我看起来标题是在多台远程计算机上杀死一个进程(例如name.exe)。我可以使用pskill或taskkill单独使用(例如): pskill -t \ -u -p name.exe 但这对50多台机器来说变得不切实际。
有没有办法让它读取IP地址的文本文件,如psexec使用@C:\ name.txt或PowerShell或类似的东西?
所有设备都在同一个域中。 提前感谢您的帮助。
答案 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
}