2

I am looking as the title says to kill a process (for example name.exe) on multiple remote machines. I can do it individually using pskill or taskkill using (for example): pskill -t \ -u -p name.exe but this becomes impractical with 50+ machines.

Is there a way to make it read a text file of IP Addresses like psexec does using the @C:\name.txt or in powershell or something similar?

All devices are on the same domain. Thank you in advance for your help.

thepiman
  • 41
  • 1
  • 1
  • 2

2 Answers2

3

If you have a text file with a list of machines you could do it trivially with:

get-content serverlist.txt | Foreach-object {& pskill -t \\$_ -u -p name.exe}
JNK
  • 63,321
  • 15
  • 122
  • 138
  • This would send the password over in clear text? If so how would I be able to encrypt the password with this command to ensure it is not seen by anyone sniffing the traffic? – thepiman Apr 18 '14 at 22:10
1

There are many methods to do this in Powershell like WMI, Invoke-command etc. Here is an example to do it using WMI:

$cred = get-credential

It will pop-up for Credential. This way you can make sure that credential is not visible in the script.

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