Active Directory – Benutzer aus CSV erstellen

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.

Microsoft Konsole Active Directory-Benutzer und -Computer
Unter Ansicht erweiterte Features aktivieren

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.

Visual Studio Code PowerShell Script
Pfad und Domainparameter konfigurieren

In der CSV sind die gängigsten Felder vorhanden.

CSV View Rons Data Edit
Auszug aus der Uservorlage

Hier noch zwei Anmerkungen dazu:

PasswortGueltigkeit0=unbegrenzt oder Laufzeit angeben 90=90 Tage Gültigkeit
KontoAktivTrue oder False

Das Script erstellt ein LOG

Ansicht der Log-Datei des PowerShell Script create_user_from_csv.ps1
Ausführliches LOG mit Informationen aus dem Script

So sieht es dann bei einem Benutzer aus

Microsoft Konsole Active Directory-Benutzer und -Computer
Ansicht Benutzerkonfiguration
Veröffentlicht von

Kai

Mastermind der IT in einem KMU. Zertifizierungen im MS Umfeld. Ehrenamtlich beim BSI tätig. Zum Ausgleich wird MTB oder Motorrad gefahren.

Vielleicht interessiert dich auch…

Schreibe einen Kommentar

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