#! /usr/bin/perl use strict; use warnings; use Win32::OLE qw( in ); use Win32::OLE::Variant; use Win32::Process; my $srv = "\\\\" . $ENV{'COMPUTERNAME'}; my $CLASS = "winmgmts:{impersonationLevel=impersonate}$srv\\Root\\cimv2"; my $WMI = Win32::OLE->GetObject( $CLASS ) || die; foreach my $Proc ( in($WMI->InstancesOf( "Win32_Process" ) ) ) { if ($Proc->{Name} =~ /^notepad/i) { printf( "%d\t- %s ***KILLING***", $Proc->{ProcessID}, $Proc->{Name}); print "\n"; Win32::Process::KillProcess($Proc->{ProcessID}, 0); } else { printf( "%d\t- %s", $Proc->{ProcessID}, $Proc->{Name}); print "\n"; } }