use warnings;
use strict;
use DBI;
my $dbh = DBI->connect('dbi:WMI:');
my $sth = $dbh->prepare('SELECT * FROM Win32_Process');
$sth->execute();
while (my $r = $sth->fetchrow) {
printf("%6d %-35s %-60s\n", $r->{ProcessId}, $r->{Caption}, $r->{ExecutablePath} || "<system>");
}