LDAP mit der Powershell – Teil 2

Die Verbindung zu einem LDAP-Server haben wir ja schon im letzten Beitrag hergestellt. Heute wollen wir versuchen, eine einfache Abfrage abzusetzen und die Ergebnisse zu verarbeiten.

Zuerst brauchen wir dazu eine Instanz des System.DirectoryServices.Protocols.SearchRequest Objektes. Das Verhalten dieses Objektes können wir über seine Properties steuern:

  • Mittels DistinguishedName können wir die sog. Search-Base setzen, also den Einstiegspunkt im LDAP-Baum, an dem unsere Suche beginnen soll
  • Über Filter können wir den LDAP-Filter definieren. Wie genau jetzt ein LDAP-Filter aussieht erkläre ich jetzt nicht, das steht anderswo auch.
  • Das Enum [DirectoryServices.Protocols.SearchScope] definiert, wie „tief“ die suche im LDAP-Baum gehen soll, hier gibt es die Werte Base, OneLevel und SubTree. In diesem Beispiel verwenden wir SubTree damit geht die Suche von der Search-Base abwärts bis in den tiefsten Teilbbaum rein.
  • Tja, dann bleibt uns nur noch zu sagen, welche Attribute wir denn gerne zurückgeliefert haben wollen. Das können wir über die AttributesProperty steuern.

Wenn die Anfragedaten komplett sind, dann können wir über die LdapConnectiondie Anfrage absetzen und erhalten eine SearchResponsezurück.

Wenn jetzt keine Exception geworfen wurde, seit ihr schon ziemlich weit, dann gilt es die SearchResponseauszuwerten:

  • Wie unten im Beispiel gezeigt einfach in einer Schleife alle Entriesdurchgehen
  • Alle Attribute auslesen und deren Werte in einem neuen PSObjectabspeichern.
  • Das erzeugte Objekt mit seinen Werten ausgeben

Die Ausgabge des Scriptes könnt ihr dann in der Pipeline wie ihr wollt weiterverarbeiten.

Zum Abschluss natürlich noch das ganze Script zusammengefasst zum Abschreiben: 😉


In Teil 3 werden wir versuchen ein Attribut eines LDAP-Objektes zu ändern, also: Stay tuned….

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre, wie deine Kommentardaten verarbeitet werden.