blackadder has asked for the wisdom of the Perl Monks concerning the following question:
use strict; use Win32::Lanman; use File::Spec qw (splitdir); my $input = shift @ARGV; push (my @SrvLst, $input); for my $Srv (@SrvLst) { &Get_Shr($Srv); print "___________________________________________\n"; } sub Get_Shr { my $Machine = shift @_; my $UncSrvName = "\\\\" . $Machine; print "\nAttempting to access '$UncSrvName'\n"; if (Win32::Lanman::NetShareEnum( $UncSrvName , \ my @EnumLst)) { my %SeenPath=(); for my $Share (@EnumLst ) { next if ( ($Share->{path}) =~ /^c/i); next if ( ($Share->{netname})=~ /ipc\$|rpc\$|netlogon\$|ad +min\$|^CDROM|^\w\$/i); my @SplitDir = File::Spec->splitdir(uc ($Share->{path})); my $DrvLttr = @SplitDir[0]; my $TopDir = @SplitDir[1]; my $DrvTop = $DrvLttr . "\\" . $TopDir; unless ( ($SeenPath{($DrvTop)})) { $SeenPath{$DrvTop}=1; print "\nDrvTop=> $DrvTop "; $DrvLttr =~ s/:/\$/; my $TargetPath = $UncSrvName . "\\". $DrvLttr ."\\" . + $TopDir; print "\tSizing "; if (opendir ( DIR, "$TargetPath")) { print "$TargetPath"; my ($Size)=( (qx{dir /s "$TargetPath"})[-2]=~ /([\ +d,]+) bytes/ ); print " : $Size\n"; undef $Size; } else { warn " \n(Access Error : $^E)\n"; } } } } else { print Win32::FormatMessage(Win32::Lanman::GetLastError()) . " +$Machine\n"; } }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Out of memory.
by BrowserUk (Patriarch) on Jul 22, 2003 at 16:33 UTC | |
by blackadder (Hermit) on Jul 23, 2003 at 09:23 UTC | |
by BrowserUk (Patriarch) on Jul 23, 2003 at 11:24 UTC | |
by Aristotle (Chancellor) on Jul 23, 2003 at 11:54 UTC | |
by BrowserUk (Patriarch) on Jul 23, 2003 at 12:19 UTC | |
| |
by blackadder (Hermit) on Jul 24, 2003 at 10:07 UTC | |
by blackadder (Hermit) on Jul 24, 2003 at 09:41 UTC | |
by BrowserUk (Patriarch) on Jul 24, 2003 at 17:58 UTC | |
| |
|
Re: Out of memory.
by dragonchild (Archbishop) on Jul 22, 2003 at 15:28 UTC | |
by blackadder (Hermit) on Jul 23, 2003 at 09:26 UTC | |
|
Re: Out of memory.
by naChoZ (Curate) on Jul 22, 2003 at 15:08 UTC |