Massenimport von Benutzern ins Active Directory

Neulich hatte ich folgende Aufgabe zu erledigen: Exportiere die Daten von allen Benutzern mit Mailbox in Active Directory A und lege sie im Active Directory B als E-Mail aktivierte Benutzer neu an. Eigentlich ist das keine große Herausforderung, wenn da nicht wieder der Teufel im Detail versteckt wäre. Hier war die Herausforderung, dass nicht alle Attribute im Quell Active Directory gepflegt waren und ein Import von leeren Benutzerobjekten mit leeren Attributen zu einer Fehlermeldung führte.

Zur Lösung der Problematik habe ich eine Hashtable verwendet und die leeren Attribute einfach entfernt, dazu habe ich die Powershell Funktion verwendet, die ich hier gefunden habe. Aber der Reihe nach:

  1. Der Export
    Beim Export ist darauf zu achten, dass für die Felder der CSV die korrekten Bezeichnungen aus dem Active Directory verwendet werden. Um die korrekten Bezeichnungen aller für mich interessanten Attribute herauszufinden, habe ich einfach einen Musteruser angelegt und diesen mit get-aduser ausgelesen.
  2. Der Import
    Der Import ist sehr einfach, vorausgesetzt die Felder sind korrekt benannt:
    Zunächst die CSV-Datei einlesen mit

    $boxes = import-csv users.csv -Delimiter ";"

    Dann geht es in die Schleife:

    foreach ($box in $boxes) {

    Jetzt kommt die Hashtable Magie -> der Parameter -noempty wirft alle leeren Attribute weg:

    $otherattributes = $box | convertto-hashtable -noempty

    Und schließlich der Import in das Ziel Active Directory:

    New-AdObject -Type User -Path $targetpath -Name $Name -OtherAttributes $otherattributes -Server $dc
Print Friendly, PDF & Email
Werbeanzeigen

Kommentar verfassen