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!
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:
$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!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 181716
Url: https://administrator.de/contentid/181716
Ausgedruckt am: 22.11.2024 um 21:11 Uhr
7 Kommentare
Neuester Kommentar
"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?