use Win32::Process::Info; use Win32::Process; use Data::Dumper; use strict; use warnings; my $badprocess = { "bargains.exe" => 1, "cdywnqk.exe" => 1, "msbb.exe" => 1, "msn.exe"=>1, "sp2update.exe" => 1, "syncroad.exe" => 1, "webrebates0.exe" => 1, "webrebates1.exe" => 1, "winabsmod.exe" => 1, "winnet.exe" => 1 }; my $pi = Win32::Process::Info->new(); my @info = $pi->GetProcInfo (); for my $i (0..$#info) { if (defined($badprocess->{lc($info[$i]->{"Caption"})})) { my $exit = 0; print "About to kill " . $info[$i]->{"ExecutablePath"} . "\n"; Win32::Process::KillProcess($info[$i]->{"ProcessId"}, $exit); } }