Wie kann ich eine LDAP suche machen in jedem verzeichniss nur nicht in einem.
Hallo Leute,
ich möchte eine Ldap Abfrage nach allen Workstations machen, und das auf dem Kompletten server nur nicht in einem Verzeichniss, dass soll aus der Suche ausgeschlossen werden.
Meine Bisherige Abfrage sieht so aus:
Nun habe ich als Suchort ja den Baum Server angegeben (o=server) möchte da auch überall suchen, jedoch soll in dem verzeichniss "ou=PO,ou=REGION,o=Server" nicht gesucht werden.
Wie grenze ich das nun aus?
Danke für eure Hilfe!
$attr_cn = array("*");
$filter_cn = "(objectClass=Workstation)";
$ldap_search_cn = ldap_search($ldap_con, "o=Server", $filter_cn, $attr_cn) or die ("<p>Ging leider schief!</p>");
$ldap_result_cn = ldap_get_entries ($ldap_con, $ldap_search_cn);
Nun habe ich als Suchort ja den Baum Server angegeben (o=server) möchte da auch überall suchen, jedoch soll in dem verzeichniss "ou=PO,ou=REGION,o=Server" nicht gesucht werden.
Wie grenze ich das nun aus?
Danke für eure Hilfe!
Please also mark the comments that contributed to the solution of the article
Content-Key: 181716
Url: https://administrator.de/contentid/181716
Printed on: April 18, 2024 at 11:04 o'clock
7 Comments
Latest comment
"objectClass=Workstation" geht auch? Ich dachte immer, dass müsste "objectClass=Computer" lauten?
Ferner muss es sicher "ou=Server" lauten.
Du möchtest also eine rekursive Suche durch alle Sub-OU's machen und dabei aber eine Sub-OU auslassen?
Das ginge höchstens per Filter auf dem DN. Da man aber meines Wissen im DN nicht mit Wildcards suchen kann (also z.B. nach "*,ou=PO,ou=REGION,o=Server,..." kannst Du entweder zweimal suchen, beim zweiten Mal mit dieser OU als Basis und dann das Ergebnis aus der ersten Suche rausrechnen, oder Du verpasst allen Computer-Objekten in dieser OU ein bestimmtes Attribut, nach welchem Du dann filterst.
1. Beispiel:
Alle Computer der OU "PO" bekommen im Betreff einen String der mit "PO: " anfängt. Dann könnter er Filter so aussehen:
2. Beispiel
Du verwendest die bei Computer-Objekten die ungenutzten Attribute "extensionAttribute1" bis "...15", legts dort einen bestimmten Wert rein und filterst danach:
z.B. in OU "PO" haben alle Computerobjekte als "extensionAttribute1" den Wert "auslassen". Dann könnte der Filter so aussehen:
Ferner muss es sicher "ou=Server" lauten.
Du möchtest also eine rekursive Suche durch alle Sub-OU's machen und dabei aber eine Sub-OU auslassen?
Das ginge höchstens per Filter auf dem DN. Da man aber meines Wissen im DN nicht mit Wildcards suchen kann (also z.B. nach "*,ou=PO,ou=REGION,o=Server,..." kannst Du entweder zweimal suchen, beim zweiten Mal mit dieser OU als Basis und dann das Ergebnis aus der ersten Suche rausrechnen, oder Du verpasst allen Computer-Objekten in dieser OU ein bestimmtes Attribut, nach welchem Du dann filterst.
1. Beispiel:
Alle Computer der OU "PO" bekommen im Betreff einen String der mit "PO: " anfängt. Dann könnter er Filter so aussehen:
$filter_cn = "(objectClass=Computer)(!description=PO:*)"
2. Beispiel
Du verwendest die bei Computer-Objekten die ungenutzten Attribute "extensionAttribute1" bis "...15", legts dort einen bestimmten Wert rein und filterst danach:
z.B. in OU "PO" haben alle Computerobjekte als "extensionAttribute1" den Wert "auslassen". Dann könnte der Filter so aussehen:
$filter_cn = "(objectClass=Computer)(!extensionAttribute1=auslassen)";
Zitat von @Jeeroy:
PS: Bei uns geht es auch mit Workstations und es lautet bei uns ou=Norden, o=Server ;)!
PS: Bei uns geht es auch mit Workstations und es lautet bei uns ou=Norden, o=Server ;)!
Hm...? Was ist das für ein Verzeichnisdienst?