I have to admit that a lot of the Win32 modules have a poor API, are poorly documented and often don't quite work as intended. To be fair the writers of these modules, it's more often Windows' internals that are the problem rather than Perl.

Anyway, having had to do this for a production service on which 40k people rely, the most robust method I could find was to use WMI to enumerate all the shares on a remote server and then use a Windows resource kit tool - rmtshare - to get the permissions off. It copes very well with all manner of local and domain groups.

This is a quick and ready code snippett that I hacked up in a hurry, so it may not be the best:

open (COMMAND, "rmtshare \\\\$server\\\$share\" |" ) or die "Eeek, una +ble to run rmtshare\n"; while ( <COMMAND> ) { next unless /:/g; next if /^Path/; next if /^Permissions/; chomp; if ( $_ ) { #$_ =~ s/\s+//g; my ( $user, $perm ) = split( /:/, $_ ); $perm =~ s/FULLCONTROL$/FULL/; $perm =~ s/FULL CONTROL$/FULL/; $user =~ s/^\\Everyone/Everyone/; $user =~ s/^\s+//; $user =~ s/\s+$//; $perm =~ s/^\s+//; $perm =~ s/\s+$//; print "$user:$perm\n"; } } close COMMAND;

In reply to Re: Win32::Perms doesn't get local groups by puploki
in thread Win32::Perms doesn't get local groups by bowei_99

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.