The thought plickens!

Here's the latest generation of the code:
use Win32::DriveInfo; use constant { SECTORS_PER_CLUSTER => 0, BYTES_PER_SECTOR => 1, FREE_CLUSTERS => 2, TOTAL_CLUSTERS => 3, BYTES_FREE_4_CALLER => 4, TOTAL_BYTES => 5, TOTAL_FREE => 6, }; #$sql = "\\\\server01\\d\$"; $sql = "c:"; print "$sql\n"; print "Drive Free Tot PctFree\n"; my @info = Win32::DriveInfo::DriveSpace($sql) ; print "$^E\n"; # or die "DriveSpace failed with error: $^E"; printf "%.3f GB free of total %.3f GB\n", $info[ TOTAL_FREE ] / 1000**3, $info[ TOTAL_BYTES ] / 1000**3;
And here's the output of two runs:
c:\Perl>drivelist.pl \\sql-01\d$ Drive Free Tot PctFree 0.000 GB free of total 0.000 GB c:\Perl>drivelist.pl c: Drive Free Tot PctFree The specified procedure could not be found 31.283 GB free of total 74.444 GB c:\Perl>dir Volume in drive C is cMore Volume Serial Number is A07E-ED9D Directory of c:\Perl 02/18/2010 10:59 PM <DIR> . 02/18/2010 10:59 PM <DIR> .. 05/30/2008 03:51 PM <DIR> bin 05/30/2008 03:51 PM <DIR> eg 05/30/2008 03:51 PM <DIR> etc 05/30/2008 03:52 PM <DIR> html 05/30/2008 03:51 PM <DIR> lib 05/30/2008 03:51 PM <DIR> man 05/30/2008 03:51 PM <DIR> site 02/18/2010 10:58 PM 629 drivelist.bak 02/18/2010 10:59 PM 628 drivelist.pl 2 File(s) 1,257 bytes 9 Dir(s) 33,590,083,584 bytes free
So if I point it to my local drive, I get an error condition but I get correct results. If I point it to a server $root share, I get no results but nothing in the error string. And I tried running it against my local machine as a \\pcname\c$ and got the same result as a remote server, zeroes for space and no error.

I noticed the discrepency on disk space. Turns out I need to divide by 1000**3 rather than 1024**3. Easy fix there. I have a couple of thoughts that I'll try tomorrow when I'm in the office.

I should have mentioned the Perl version that I'm running is:
c:\Perl>perl -v This is perl, v5.10.0 built for MSWin32-x86-multi-thread (with 5 registered patches, see perl -V for more detail) Copyright 1987-2007, Larry Wall Binary build 1003 [285500] provided by ActiveState http://www.ActiveSt +ate.com Built May 13 2008 16:52:49
I should probably look at an update tomorrow, but I don't think that's the issue. My PC is XP Pro SP3. I'm logged on as a general user but running a command prompt session as my network admin login, so if I do a 'dir \\server01\d$', I see results just fine.

In reply to Re^4: Trying to get drive space info on remote Windows servers by Cloudster
in thread Trying to get drive space info on remote Windows servers by Cloudster

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.