Hi Justin,
On Wed, Jan 6, 2016 at 1:28 PM, Justin Alcorn <[email protected]> wrote:
> Your issue is that your perl logic has only one loop, over the first
> group. You need to search and then start processing the groups with
> pop_entry.
>
thanks for the tip!
I have this now which seems to work properly:
my @members;
my $samaccount;
$mesg = $ldapprod->search(
base => $prod_base,
filter => "(objectclass=group)",
scope => 'sub',
attrs => [
( $index > 0 ) ? "member;range=$index-*" : 'member',
'samaccountname',
]
);
if ( $mesg->code == LDAP_SUCCESS ) {
#my $entry = $mesg->entry(0);
while ( my $entry = $mesg->pop_entry() ) {
my $attr;
# large group
if ( ($attr) = grep( /^member;range=/, $entry->attributes ) ) {
push( @members, $entry->get_value($attr) );
$samaccount = $entry->get_value('samaccountname');
if ( $attr =~ /^member;range=\d+-(.*)$/ ) {
$index = $1;
$index++ if ( $index ne '*' );
}
}
# small group
else {
@members = $entry->get_value('member');
$samaccount = $entry->get_value('samaccountname');
}
print "Group: $samaccount\n";
for (@members) {
print "$_\n";
}
print "=" x 72 . "\n";
}
}
Thanks again, i have to look into the paging limits as well, as you
mentioned. Small steps.
--
regards,
natxo