use strict; use Win32::FileSecurity qw(Get EnumerateRights); my $share=$ARGV[0]; my $out=$ARGV[1]; my ($name,$mask,@rights,%hash,$server); my @servers=('SERVERX','SERVERX','SERVERX','SERVERX','SERVERX','SERVERX','SERVERX','SERVERX','SERVERX','SERVERX','SERVERX','SERVERX','SERVERX','SERVERX','SERVERX','SERVERX','SERVERX','SERVERX','SERVERX','SERVERX','SERVERX','SERVERX','SERVERX','SERVERX','SERVERX'); @servers=map ("//$_/$share",@servers); open (OUT, ">$out") or die "can't open log file!"; foreach $server( @servers ) { next unless -e $server ; if ( Get( $server, \%hash ) ) { print OUT "$server\n"; print "$server\n"; while( ($name, $mask) = each %hash ) { print OUT "\t$name:\n\t\t"; EnumerateRights( $mask, \@rights ) ; print OUT join( "\n\t\t", @rights ), "\n"; } } else { print( "Error #", int( $! ), ": $!" ) ; } } close OUT;