http://qs1969.pair.com?node_id=147624

enigmae has asked for the wisdom of the Perl Monks concerning the following question:

Hello,
I am trying to get the owners of processes running on an
NT/2K box. I can get the list of processes just fine,
however when i try to call the process->GetOwner()
which returns an int (success of call) and takes two
string references user and domain. I have tried
sending references to scalar, and array perl variables
however i don't think that the API likes that, cause i
don't get anything back. here is my simple script:
use Win32::OLE('in'); $server = ""; $lobj = Win32::OLE->new('WbemScripting.SWbemLocator') or die "can't create locator:".Win32::OLE->LastError()."\n"; $lobj->{Security_}->{impersonationlevel}= 3 ; $sobj = $lobj->ConnectServer($server, 'root\cimv2') or die "can't create server object:".Win32::OLE->LastError)."\n"; $procschm = $sobj->Get('Win32_Process'); foreach $process (in $sobj->InstancesOf("Win32_Process")){ #haved tryed this too #$user=""; #$domain=""; #$userref=\$user; #$domainref=\$domain; @user=""; @domain=""; #doesn't work either #$process->GetOwner($userref,$domainref); $process->GetOwner(@user,@domain); print $process->{Name}." is pid #".$process->{ProcessID}." User Time " +.$process->{UserModeTime}."\n"; print "Owner \\\\ ".@domain."\\ ".@user."\n"; }

any help would be appriciated. thanks
lucas krause