use strict; use Win32::OLE qw( in ); my $Computer = 'myworkstation'; my $WMIServices = Win32::OLE->GetObject( "winmgmts:{impersonationLevel=impersonate}//$Computer" ) || die ("Could not connect to $Computer"); my $OSCollection = $WMIServices->InstancesOf( "Win32_OperatingSystem" ); foreach my $OS (in $OSCollection ) { print "OS = $OS->{Caption}\n"; }