Hi everybody,
i tried to get all elements of my ldap by using the source code:
<---
#!/usr/bin/perl
use strict;
use DBI;
use Net::SMTP;
use Net::LDAP;
use Net::LDAP::LDIF;
use Net::LDAP::Control::Paged;
use Net::LDAP::Constant qw(LDAP_CONTROL_PAGED);
my $ad_ldap_dn =
"cn=myuserid,ou=benutzerkonten,dc=my,dc=domain,dc=com";
my $ad_ldap_password = "MySecretPassword";
my $ad_ldap_server = "my.domain.com";
my $item;
my $ad_ldap = Net::LDAP->new($ad_ldap_server, version => 3) or die
"unable to connect to ad ldap: $@";
my $result = $ad_ldap->bind($ad_ldap_dn, password => $ad_ldap_password);
my $page = Net::LDAP::Control::Paged->new(size => 1000);
my $cookie;
my @args = ( base => "ou=benutzerkonten,dc=my,dc=domain,dc=com",
scope => 'sub',
attrs => ['cn', 'sn', 'givenname', 'department','objectClass'],
filter => "(cn=*)",
control => [ $page ]
);
while (my $ad_search = $ad_ldap->search(@args)) {
while (my $ad_user = $ad_search->shift_entry) {
foreach $item ($ad_user)
{
my $personalnummer = "";
my $koe = "";
my $vorname = "";
my $nachname = "";
my $objectClass = "";
$personalnummer = $item->get_value ( 'cn' );
$koe = $item->get_value ( 'department' );
$vorname = $item->get_value ( 'givenname' );
$nachname = $item->get_value ( 'sn' );
$objectClass = $item->get_value ( 'objectClass' );
if ( ($vorname eq "Jochen") || $nachname eq "Wirth" ||
$nachname eq "Zinkel" )
{
print $vorname.", ".$nachname." (".$personalnummer.") - $koe
Klasse: $objectClass gefunden...\n";
}
}
my ($resp) = $ad_search->control(LDAP_CONTROL_PAGED);
$cookie = $resp->cookie or last;
$page->cookie($cookie);
}
if (!$cookie)
{
last;
}
}
$ad_ldap->unbind();
<---
but still there are some datasets missing :(
I changed the filter to:
- filter => "(cn=*)",
- filter => "(sn=*)",
- filter => "($objectClass=*)",
Using the filter i got
- 6282
- 6394
- 6289
elements...
But this are still not all elements...
Is there a easy way to get all ldap elements?
Thanks for help
Andy