#! /usr/bin/perl use warnings; use strict; use Win32; use Win32::OLE qw(in); # use Data::Dumper; my %types = ( 0 => 'Unknown',  1 => 'No root',     2 => 'Removable', 3 => 'Local', 4 => 'Network',   5 => 'CDRom', 6 => 'RAM Disk',  ); my $server = &Win32::NodeName; # aktuellen PC; sonst hier den Namen eintragen $server =~ s/\\+//; # backslashes entfernen my $class = "WinMgmts:{impersonationLevel=impersonate}!//$server"; if ( my $wmi = Win32::OLE->GetObject($class) ) {    foreach my $disk ( in( $wmi->InstancesOf("Win32_LogicalDisk") ) ) { # print Dumper($disk); print "Name: ", $disk->{Name}, "\n"; print "Typ : ", $types{ $disk->{DriveType} }, "\n"; print "Size: ", &FormatNumber($disk->{Size} || 0), "\n"; print "Free: ", &FormatNumber($disk->{FreeSpace} || 0), "\n"; print "\n";    } # foreach } # if sub FormatNumber {    my $number = shift;    1 while $number =~ s/^(-?\d+)(\d{3})/$1.$2/;    return $number; } # FormatNumber