in reply to Re^3: Error with GetDRIVE() when using a mapped drive
in thread Error with GetDRIVE() when using a mapped drive

Aha!, Thanks a lot. I noticed too and I changed it. Here is the code
#!perl use warnings; use strict; use Win32::OLE; my $fs = Win32::OLE->CreateObject('Scripting.FileSystemObject'); my $d = $fs->GetDrive('Y:') or die "GetDrive failed $!"; my $TotalSize = $d->{TotalSize}; my $FreeSpace = $d->{FreeSpace}; my $usedSpace = $d->{TotalSize} -= $d->{FreeSpace}; my $AvailableSpace = $d->{AvailableSpace} *=100; my $AvailUsed = $AvailableSpace /= $d->{TotalSize}; my $SpaceLeft = $d->{AvailableSpace} /= $AvailUsed; my $MappedDriveSpaceAvailable = $AvailUsed *= 100; print "em_result=$MappedDriveSpaceAvailable";

Now, there are the errors

GetDrive failed Bad file descriptor at E:\APPL\OEM\NetworkDriveCheck.pl line 9.

Replies are listed 'Best First'.
Re^5: Error with GetDRIVE() when using a mapped drive
by soonix (Chancellor) on Nov 04, 2014 at 20:12 UTC

    Weird... What is that Y: drive, then? A mapped network share? Can you see its properties the "normal" way?

    Is it in the Drives collection? - i.e. would my code snippet try to list it?

      Y drive is a network drive. Here are the results of the snippet

      DriveLetter: Y DriveType: 3 IsReady: 1 FileSystem: NTFS TotalSize: 2594847440896 Use of uninitialized value in concatenation (.) or string at E:\APPL\O +EM\checkdr ive.pl line 14. FreeSpac: Use of uninitialized value in concatenation (.) or string at E:\APPL\O +EM\checkdr ive.pl line 14.
        Hmmm... that's 2.5 TB - works here with 8 TB ... That raises the following questions:
        • do the numbers look correct, if you execute in a command line shell
          wmic logicaldisk where DeviceID="Y:"
        • are you using a 64bit or 32bit Perl?
          (Although that shouldn't matter, works here with 5.14.2 i386 and 5.18.2 x64)
        • Versions of Perl, Win32::OLE, Windows (also, 64 or 32 bit Windows)?