Ich hatte in der Vergangenheit bereits einen Artikel veröffentlicht, in dem ich gezeigt habe, wie man Benutzerinformationen aus einem Active Directory exportiert. Aufgrund von mehreren Nachfragen habe ich einen Artikel erstellt, in dem man den Import von Benutzer verfolgen kann.
Als Ausgangsbasis dient eine CSV-Datei, die ich ebenfalls bereitstelle. Diese wird mit New-ADUser aus dem Active Directroy Modul der PowerShell verarbeitet. Ich habe das Script möglichst einfach gehalten und stelle das Beispiel incl. CSV-Datei bei github zur Verfügung.
Damit die Anlage der Benutzer funktioniert, muss die Ziel-Organisationseinheit (OU) vorhanden sein. Dazu benötigt ihr die entsprechenden Rechte und das PowerShell cmdlet ActiveDirectory
Um einen Benutzer in der entsprechenden OU zu speichern, wird der Distinguished Name benötigt.
Der Distinguished Name (DN) im Active Directory beschreibt die eindeutige Position eines Objekts in der Verzeichnishierarchie. Die Schreibweise folgt dabei einem bestimmten Schema, das sich von unten nach oben aufbaut:
Aufbau des Distinguished Name
Der DN setzt sich aus folgenden Komponenten zusammen:
Präfixe und ihre Bedeutung:
- OU = Organizational Unit (Organisationseinheit)
- CN = Common Name (Allgemeiner Name)
- DC = Domain Component (Domänenkomponente)
Schreibweise-Regeln:
- Die einzelnen Komponenten werden durch Kommas getrennt
- Die Reihenfolge geht von der untersten zur obersten Hierarchieebene
- Kommas im Namen selbst müssen mit einem Backslash maskiert werden (z.B. CN=Bogen, Ellen)
- Groß- und Kleinschreibung ist meist nicht relevant
Beispiele
Der Distinguished Name (Domain acme.local) könnte so aussehen:
- Für eine OU im Vertrieb: OU=Vertrieb,DC=acme,DC=local
- Für einen Benutzer in dieser OU: CN=Lukas Pfaff,OU=Vertrieb,DC=acme,DC=local
Der Distinguished Name (Domain intern.dynamite-medical.de) könnte so aussehen:
- Für eine OU im Vertrieb:
OU=Vertrieb,OU=Abteilungen,OU=Headquarter,DC=intern,DC=dynamite-medical,DC=de - Für einen Benutzer in dieser OU:
CN=Lukas Pfaff,OU=Vertrieb,OU=Abteilungen,OU=Headquarter,DC=intern,DC=dynamite-medical,DC=de
Besonderheiten
- Sonderzeichen wie „+“ müssen mit einem Backslash maskiert werden (z.B. OU=W+D)
- Die DC-Komponenten entsprechen dem DNS-Namen der Domäne, aufgeteilt in seine Bestandteile
- Jeder Distinguished Name ist innerhalb des Active Directory eindeutig
Wer sich nicht sicher ist, kann sich das Attribut bei einem bestehenden Objekt anschauen. Dazu muss zuerst in der Konsole „Active Directory-Benutzer und -Computer“ die erweiterten Features einblenden.
Nun können wir uns den distinguishedName über die Eigenschaften des Objekts anschauen.
Einen ausführlicheren Artikel zum Thema LDAP hat Nils Kaczenski bei faq-o-matic veröffentlicht.
Kommen wir wieder zur Aufgabestellung zurück. Im PowerShell-Script müssen lediglich die Pfadangaben und der Domain-Name angepasst werden.
In der CSV sind die gängigsten Felder vorhanden.
Hier noch zwei Anmerkungen dazu:
PasswortGueltigkeit | 0=unbegrenzt oder Laufzeit angeben 90=90 Tage Gültigkeit |
KontoAktiv | True oder False |
Das Script erstellt ein LOG
So sieht es dann bei einem Benutzer aus