lousek
Goto Top

LDAP SEARCH mit PHP - mehr als 1000 Einträge?

Hallo Forum.

Leider habe ich weder hier im Forum noch mit Google eine Lösung gefunden.

Also:
Ich will mit PHP und LDAP alle Gruppen (ca. 1500) aus dem AD (W2K3) auslesen. Mein Code:
    // Verbindung mit dem LDAP-Server herstellen
    $ldap_connect = ldap_connect($ldap_host) or die( "Could not connect!" );  
    // Beim LDAP-Server authentifizieren
    ldap_set_option($ldap_connect, LDAP_OPT_PROTOCOL_VERSION, 3) or die ("Could not set ldap protocol");  
    ldap_set_option($ldap_connect, LDAP_OPT_REFERRALS, 0); 
    ldap_set_option($ldap_connect, LDAP_OPT_SIZELIMIT, 33);  
    $ldap_bind_anonym = ldap_bind($ldap_connect, "*************", "*************");  
    $filter = "objectclass=group";  
    $attrb = array("cn");  
    $ldap_search = ldap_search($ldap_connect, $base_dn, $filter, $attrb, 0, 0) or die ("Could not search!");   
    $ldap_result = ldap_get_entries($ldap_connect, $ldap_search);
    $counter = 0;
    foreach ($ldap_result AS $key => $ldap_value) {
      echo $ldap_value["cn"]."<br>";  
      $counter++;
    }
    echo $counter;

Jetzt funktioniert das auch soweit ... aber er liest immer nur 1000 Einträge aus. Folgende "Fehlermeldung" kommt:
PHP Warning: ldap_search() [function.ldap-search.html]: Partial search results returned: Sizelimit exceeded. in D:\Inetpub\wwwroot\ad\login.php on line 17 

Nach meinen Google-Forschungen ist die LDAP-Suche serverseitig standard auf 1000 Einträge begrenzt (ich selbst habe im PHP keine Limite gesetzt!) ... jedoch sollte dieses Problem durch
    ldap_set_option($ldap_connect, LDAP_OPT_SIZELIMIT, 33);  
gelöst werden ...
Mit dieser Einstellung sollte ldap_search() immer nur 33 Einträge auslesen und danach die nächschten 33 auslesen usw., also sollten alle Einträge ausgelesen werden können, einfach in 33er-Paketen ...

Jedoch will dies nicht so ...

Hat jemand eine Idee / Lösung?

Greetz, Lousek

Content-Key: 95576

Url: https://administrator.de/contentid/95576

Printed on: April 24, 2024 at 00:04 o'clock

Member: seppie
seppie Sep 01, 2008 at 15:16:38 (UTC)
Goto Top
Diese Einstellung kannst du nicht im PHP festlegen. Das Limit mußt du beim Domänen-Server festlegen. Dort ist die "PageSize" auf 1000 Ergebnisse festgelegt, um die Last des Servers zu verringern. Einfach den Wert auf das gewünschte Limit erhöhen.