proclist.pl to HTML.

index -|- end

Generated: Tue Feb 2 17:54:54 2010 from proclist.pl 2006/06/14 2.4 KB.

#!/Perl
#   ProcList.pl
#   -----------
#   This script will display the list of current processes along with
#   the process's PID and binary path.
#   Syntax:
#       perl ProcList.pl [Machine Name]
#
#   Examples:
#       perl ProcTree 
#       perl ProcTree.pl \\server 
#
#   2002.01.20 rothd@roth.net
#
#   Permission is granted to redistribute and modify this code as long as 
#   the below copyright is included.
#
#   Copyright © 2002 by Dave Roth
#   Courtesty of Roth Consulting
#   http://www.roth.net/
#
#   Just added a LOG file output ... and 'standardised' the listing ...
#   geoff mclane - http://geoffmclane.com - 2006-06-14
#
use Win32::OLE qw( in );
use Win32::OLE::Variant;
$Machine = "\\\\.";
$Machine = shift @ARGV if( $ARGV[0] =~ /^\\\\/ );
# WMI Win32_Process class
$CLASS = "winmgmts:{impersonationLevel=impersonate}$Machine\\Root\\cimv2";
$count = 0;
# LOG FILE STUFF
my $write_log = 0;
my $outfile = "temp.$0.txt";
#my $LOG = new FileHandle ">$outfile"; 
my ($LOG); 
if ( open( $LOG, ">$outfile" ) ) {
###if ($LOG) {
    $write_log = 1;
   ###select $LOG;
} else {
    $write_log = 0;
    prt( "WARNING: Unable to open $outfile LOG ...\n" );
}
$WMI = Win32::OLE->GetObject( $CLASS ) || die;
prt( "No   ID      Name                      Path (if any)\n" );
foreach my $Proc ( sort {lc $a->{Name} cmp lc $b->{Name}} in( $WMI->InstancesOf( "Win32_Process" ) ) )
{
   $count++;
   ## printf( "%5d) %s ", $Proc->{ProcessID}, "\u$Proc->{Name}" );
   ## print "( $Proc->{ExecutablePath} )" if( "" ne $Proc->{ExecutablePath} );
   ## print "\n" ;
   $msg = "$count ";
   while(length($msg) < 4) { $msg .= ' '; }
   $msg .= " " . $Proc->{ProcessID};
   while(length($msg) < 12) { $msg .= ' '; }
   $msg .= " " . $Proc->{Name};
   while(length($msg) < 38) { $msg .= ' '; }
   $msg .= " " . $Proc->{ExecutablePath};
   $msg .= "\n";
   prt( $msg );
}
prt("Done enumeration of $count running processes ...\n");
################################
### output and log file
sub wlog {
   my $ml = shift;
   print $LOG $ml;
}
sub prt {
   my $m = shift;
   if ($write_log) {
      wlog($m);
   }
   print STDOUT $m;
}
sub mydie {
   my $msg = shift;
   if ($write_log) {
      wlog($msg);
   }
   die $msg;
}
sub close_log {
   if ($write_log) {
      prt( "Closing LOG file, and passing to 'system($outfile)'\nMay need to CLOSE notepad to continue ...\n" );
      close( $LOG );
      system( $outfile );
   }
}

index -|- top

checked by tidy  Valid HTML 4.01 Transitional