Fügen Sie mit PowerShell Active Directory-Benutzerkonten in großen Mengen hinzu

Haben Sie viele neue Mitarbeiter, die Sie zu Active Directory hinzufügen möchten? Es gibt einen besseren Weg als das Kopieren und Einfügen in …

die grafische Benutzeroberfläche: Verwenden Sie stattdessen PowerShell-Skripte.
Eine der wichtigsten Aufgaben von Exchange-Administratoren ist das Erstellen von Active Directory-Benutzerkonten und Postfächern. Alle dynamischen Organisationen stellen neue Mitarbeiter ein. Ein typisches Szenario besteht aus Personalressourcen, die dem Active Directory- oder Exchange-Administrator eine Excel-Tabelle oder CSV-Datei geben, die aus einer HR-Anwendung exportiert wurde, aus der Exchange-Benutzerkonten erstellt werden müssen. Es ist dann Sache des Administrators, jede dieser CSV-Zeilen in ein Active Directory-Benutzerkonto und ein Exchange-Postfach zu konvertieren.
Mit PowerShell-Skripten kann der Administrator jede der Zeilen in dieser CSV lesen und dann alle diese Felder in der richtigen Anordnung direkt an Exchange übergeben. In diesem Beispiel verwenden wir Exchange Online, um Active Directory-Benutzerkonten und Exchange-Postfächer zu erstellen In einem Schuss. Sobald das PowerShell-Skript erstellt wurde, müssen Sie lediglich die CSV-Datei übergeben, die Sie verwenden möchten, und das Skript ausführen – eine ziemliche Zeitersparnis.
Die erste Aufgabe besteht darin, auf das in PowerShell integrierte Cmdlet zu verweisen Import-CSV bei einer CSV-Datei. Es liest jede Zeile in den Speicher und speichert jede Zeile als Objekt mit allen Eigenschaften, die Sie erwarten würden.
Die CSV-Datei von HR sieht wahrscheinlich wie im Beispiel in Abbildung 1 aus, mit nur dem Vor- und Nachnamen einer Gruppe neuer Mitarbeiter. Mit PowerShell können wir im laufenden Betrieb zusätzliche Felder für die Active Directory-Konten erstellen.

Mitarbeiter, die zu Office 365 hinzugefügt werden sollen.
Abbildung 1. Eine typische Mitarbeiter-CSV-Datei aus Ihrer Organisation könnte folgendermaßen aussehen. Dies sind die Mitarbeiter, die Sie zu Office 365 hinzufügen.

Bringen Sie die CSV-Zeilen in den Speicher, indem Sie sie dem zuweisen $ Benutzer Variable.
$ users = Import-CSV –Pfad C: Users.csv
Stellen Sie als Nächstes eine Verbindung zu Exchange Online her, indem Sie eine PowerShell Remoting-Sitzung erstellen und implizites Remoting verwenden, um alle Funktionen zum Verwalten von Exchange Online verfügbar zu machen.
Holen Sie sich zuerst eine pscredential Objekt mit dem Get-Credential Cmdlet.
$ UserCredential = Get-Credential
Erstellen Sie als Nächstes eine neue PowerShell Remoting-Sitzung mit PowerShell Remoting, indem Sie das pscredential-Objekt an das übergeben New-PSSession Cmdlet zusammen mit dem ConnectionUri-Parameter und der Authentifizierungsmethode.
$ Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $ UserCredential -Authentication Basic –AllowRedirection
Bestätigen Sie, dass die Sitzung ordnungsgemäß erstellt wurde, indem Sie überprüfen $ Session um zu sehen, ob die Sitzung verfügbar ist und der Status geöffnet ist (siehe Abbildung 2).

$ Sitzung für PowerShell
Abbildung 2. $ Session zeigt, ob PowerShell Remoting eine Sitzung erfolgreich eingerichtet hat.

Verwenden Sie als Nächstes die Import-PSSession Cmdlet, um alle Cmdlets aus dieser Sitzung durch implizites Remoting in Ihre lokale Sitzung zu ziehen.
$ module = Import-PSSession – Session $ Session
Ich weise die Ausgabe von zu Import-PSSession zu einer $ module variabel weil Import-PSSession gibt ein Modul aus, das alle Cmdlets enthält. Du kannst rennen Get-Command nach, um zu bestätigen, dass die Cmdlets verfügbar sind. Verschiedene Cmdlets scrollen vorbei.
Get-Command –Module $ module.Name
Jetzt können Sie jede der CSV-Zeilen an die übergeben Neue Mailbox Cmdlet, mit dem das Active Directory-Benutzerkonto und das Exchange-Postfach für jeden Mitarbeiter erstellt werden.

Der schwierigste Teil ist das Erstellen der verschiedenen Parameter, die Neue Mailbox muss den Benutzer und die Mailbox machen. Unten finden Sie einen Codeausschnitt, der als Vorlage verwendet werden kann. In diesem Beispiel erstelle ich das Konto jedes Mitarbeiters mit einem Alias und Name des Vor- / Nachnamens. Ich stelle das ein Anzeigename Vor- / Nachname, Zuweisung von a MicrosoftOnlineServicesID als Vor- / Nachname @ adamtheautomator.com und Vergabe eines Passworts von [email protected]$$ w0rd. Ich würde nicht empfehlen, das Passwort so in Klartext zu schreiben. Wenn Sie Exchange in der Produktion Konten hinzufügen, sollten Sie die Verwendung von prüfen Export-CliXml Cmdlet, um ein pscredential-Objekt im Dateisystem zu speichern und auf diese Weise zu lesen.
$ domain = ‘adamtheautomator.com’
Foreach ($ user in $ users) {
$ alias = “{0} {1}” –f $ user.FirstName.SubString (0,1), $ user.LastName
$ mailboxParams = @ {
‘Alias’ = $ alias
‘Name’ = $ alias
‘Vorname’ = $ user.FirstName
‘Nachname’ = $ user.LastName
‘DisplayName’ = “$ ($ user.FirstName) $ ($ user.LastName)”
‘MicrosoftOnlineServicesID’ = “[email protected]$ domain “
‘Password’ = (ConvertTo-SecureString -String ‘[email protected]’-AsPlainText -Force)
‘ResetPasswordOnNextLogon’ = $ true
}}
New-Mailbox @mailboxParams
}}
Wahrscheinlich erhalten Sie für jeden Benutzer eine Warnmeldung zum Zuweisen der Lizenz zum Benutzer. Nachdem Sie ein neues Postfach erstellt haben, müssen Sie zum Office 365 Admin Center gehen und dem Postfach eine Lizenz zuweisen. Andernfalls wird es nach Ablauf der Nachfrist deaktiviert.
Sie sollten jetzt neue Benutzerkonten und Postfächer für alle Mitarbeiter daraus erstellen CSV-Datei.
Anmerkung des Verfassers: Dieser Artikel funktioniert mit Online austauschen in der Wolke. Sie können dasselbe Cmdlet verwenden Neue Mailbox vor Ort zu bauen Austausch Postfächer, aber die Syntax ist etwas anders.

Similar Posts

Leave a Reply