#In a "Workstation" module... sub get_wmi { my $self = shift; my $name = $self->name or do { warn("Cannot return WMI handle for anonymous workstation.\n"); return 0; }; use Win32::OLE ; my $wmi = Win32::OLE->GetObject( "winmgmts:{impersonationLevel=impersonate,(security)}//$name"); if ($wmi) { return $wmi; }else{ return 0; } }