N
N
Nikolay Baranenko2017-01-15 14:49:58
Perl
Nikolay Baranenko, 2017-01-15 14:49:58

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";

also found another option
#!/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;

Please tell me how to modify them so that you can enter the name of the remote server + its name and password.

Answer the question

In order to leave comments, you need to log in

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question