Answer the question
In order to leave comments, you need to log in
How to retrieve FreeSpace values from a remote windows server?
Hello.
I recently started learning perl.
To retrieve data from a local server, I use the following code
use warnings FATAL => 'all';
use strict;
#!perl
use Win32::OLE;
my $fs = Win32::OLE->CreateObject('Scripting.FileSystemObject');
my $d = $fs->GetDrive('c:');
print $d->{TotalSize}, " total\n";
print $d->{FreeSpace}, " free\n";
print $d->{AvailableSpace}, " available\n";
print $d->{TotalSize} - $d->{FreeSpace}, " used\n";
#!/usr/local/bin/perl
use Win32::DriveInfo;
use strict;
use warnings;
print "OS Information\n";
my $computer=Win32::NodeName();
print "The computer name is $computer\n";
my %dtypes=(0 => "Undertmined",
1 => "Does Not Exist",
2 => "Removable",
3 => "Hardrive",
4 => "Network",
5 => "CDROM",
6 => "RAM Disk");
print "Drive Information\n";
my @drives = Win32::DriveInfo::DrivesInUse();
foreach my $drive (@drives){
my $type=Win32::DriveInfo::DriveType($drive);
print "Drive $drive is a $dtypes{$type}\n";
if (($drive eq 'C') | ($drive eq 'H')) {
my ($sectors, $bytessec, $freeclust, $clustnum, $userfree, $total, $totalfree)=Win32::DriveInfo::DriveSpace($drive);
#divide bytes to get gigabytes;
my $gbtotal = sprintf("%.2f", ($total/1073741824));
my $gbfree = sprintf("%.2f", ($totalfree/1073741824));
my $gbused = sprintf("%.1f", ($gbtotal - $gbfree));
my $free = $gbfree/$gbtotal;
my $perfree = sprintf("%.2f", ($free * 100));
#Print output
printf "$gbfree GB free from total of $gbtotal GB\n";
printf "total GB used $gbused\n";
printf "$perfree%% free on drive $drive\n";
printf "\n";
}
else {}
}
exit;
Answer the question
In order to leave comments, you need to log in
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question