raj8 has asked for the wisdom of the Perl Monks concerning the following question:
use Win32; use Win32::OLE qw( in ); %TYPE = ( 0 => 'Unknown', 1 => 'No Root', 2 => 'Removable', 3 => 'Local', 4 => 'Network', 5 => 'CDRom', 6 => 'RAM Disk', ); push (@ARGV, Win32::NodeName() ) if( ! scalar @ARGV ); foreach my $Machine ( @ARGV ) { $Machine =~ s/\\+//; my $CLASS = "WinMgmts:{impersonationLevel=impersonate}!//$Machine"; print "\\\\$Machine\n"; if( my $WMI = Win32::OLE->GetObject( $CLASS ) ) { local $Disk; $~ = DISK_HEADER_FORMAT; write; $~ = DISK_FORMAT; foreach $DISK ( in( $WMI->InstancesOf( "Win32_LogicalDisk" ) ) ) { local $Drive = $TYPE{$Disk->{DriveType}}; local %Size = ( total => FormatNumber( $Disk->{Size} ), free => FormatNumber( $Disk->{FreeSpace} ) ); write; } } print "\n"; } sub FormatNumber { my( $Number ) =@_; while( $Number =~ s/^(-?\d+)(\d{3})/$1,$2/ ){}; return( $NUMBER ); } format DISK_HEADER_FORMAT = FS Type Size Free --------------------------------------------------------- . format DISK_FORMAT = @<< @<<<< @<<<<<<<< @>>>>>>>>>>>>>>>>>>>> $Disk->{Name}, $Disk->{FileSystem}, $Drive, $Size{total}, $Size{fre +e} .
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Remote Drive Info
by Paladin (Vicar) on Apr 30, 2004 at 17:16 UTC | |
by Util (Priest) on Apr 30, 2004 at 17:49 UTC | |
by ronald (Beadle) on Apr 30, 2004 at 20:24 UTC | |
|
Re: Remote Drive Info
by shonorio (Hermit) on Apr 30, 2004 at 23:28 UTC | |
|
Re: Remote Drive Info
by crabbdean (Pilgrim) on May 01, 2004 at 04:19 UTC |