rendered paste bodyuse Win32::OLE qw (in);
$strComputer = ".";
#connect to WMI
my $WMIProcesses = Win32::OLE->GetObject("winmgmts://$strComputer") || die;
print "****************** Computer Info *************************\n";
my $ComputerSystemCollection = $WMIProcesses->InstancesOf("Win32_ComputerSystem" );
if (Win32::OLE->LastError() != 0) {
print Win32::OLE->LastError()."\n";
}
foreach $ComputerSystemz (in $ComputerSystemCollection) {
print $ComputerSystemz->{Name}." ";
print $ComputerSystemz->{UserName}."\n";
print $ComputerSystemz->{Manufacturer}." : ";
print $ComputerSystemz->{Model}." : ";
print $ComputerSystemz->{Description}."\n";
}
print "_________________________________________________________\n\n";
print "\n\n\n";
print "******************** Start Up Commands ******************\n\n";
my $StartupCommandCollection = $WMIProcesses->InstancesOf("Win32_StartupCommand" );
if (Win32::OLE->LastError() != 0) {
print Win32::OLE->LastError()."\n";
}
foreach $StartupCommandz (in $StartupCommandCollection) {
print $StartupCommandz->{Name}." ";
print $StartupCommandz->{Command}."\n";
print $StartupCommandz->{User}." : ";
print $StartupCommandz->{UserSID}." : ";
print $StartupCommandz->{Location}."\n";
print " ----\n";
}
print "_________________________________________________________\n\n";
print "\n\n\n";
print "********************* List Processes ********************\n\n";
my $ProcessCollection = $WMIProcesses->InstancesOf("Win32_PRocess" );
if (Win32::OLE->LastError() != 0) {
print Win32::OLE->LastError()."\n";
}
foreach $Processz (in $ProcessCollection) {
print $Processz->{ProcessID}." : ";
print $Processz->{Name}." : ";
print $Processz->{ExecutablePath}."\n";
}
print "_________________________________________________________\n\n";
print "\n\n\n";
print "********************* List Services ********************\n\n";
my $ServiceCollection = $WMIProcesses->InstancesOf("win32_service" );
if (Win32::OLE->LastError() != 0) {
print Win32::OLE->LastError()."\n";
}
foreach $drive (in $ServiceCollection) {
print $drive->{PathName}."\n";
}
print "_________________________________________________________\n\n";
print "\n\n\n";
print "****************** All Windows Patches ******************\n\n";
my $QuickFixEngineeringCollection = $WMIProcesses->InstancesOf("Win32_QuickFixEngineering" );
if (Win32::OLE->LastError() != 0) {
print Win32::OLE->LastError()."\n";
}
foreach $QuickFixEngineeringz (in $QuickFixEngineeringCollection) {
print $QuickFixEngineeringz->{HotFixID}." ";
print $QuickFixEngineeringz->{Description}." ";
print $QuickFixEngineeringz->{InstalledBy}." ";
print $QuickFixEngineeringz->{InstallDate}."\n";
}
print "_________________________________________________________\n\n";
print "\n\n\n";