RSS | Module Info | Add a review of DBD-WMI
DBD-WMI
(0.06)
I've searched for a perl module to list all processes running on a Windows machine and receive PID, PPID and the command line. With this WMI module it is very simple and fast.
But I also had a problem to get command lines of processes of other logins. With the code AllowPriv() call this works with this WMI module.
Very smart module!!
use strict;
use DBI;
use Win32API::Registry qw(AllowPriv); # for AllowPriv()
AllowPriv("SeDebugPrivilege", 1);
my $dbh = DBI->connect('dbi:WMI:');
my $sth = $dbh->prepare(<<WQL);
SELECT * FROM Win32_Process
WQL
print join "\t", "PID", "PPID", "Process";
print "\n";
$sth->execute();
while (defined (my $row = $sth->fetchrow_arrayref())) {
my $ev = $row->[0];
my $ppid = $ev->{ParentProcessId} || "0";
my $pid = $ev->{ProcessId} || "0";
my $caption = $ev->{Caption} || "<system>";
my $path = $ev->{ExecutablePath} || "<unknown>";
my $cmdline = $ev->{CommandLine} || $caption;
print join "\t", $pid, $ppid, $cmdline;
print "\n";
}
Stefan Scherer - 2010-02-04T06:03:11 (permalink)
Was this review helpful to you?
Yes
No

