Importieren von Daten in mein Verzeichnis
Es gibt mehrere Möglichkeiten, wie Sie mit PowerShell Daten in Ihr Verzeichnis importieren können, doch am häufigsten wird dafür eine CSV-Datei verwendet. Diese Datei kann entweder manuell erstellt werden, z.B. mit Excel, oder aus einer vorhandenen Datenquelle exportiert werden, z.B. einer SQL-Datenbank oder Personalabteilungsanwendung. Es folgen einige allgemeinen Szenarien für das Importieren von Daten in Azure Active Directory:
Massenerstellung neuer Benutzer
Wenn Sie Benutzer in Azure Active Directory in einem Massenvorgang erstellen möchten und über eine CSV-Datei mit Informationen zu den neuen Benutzern verfügen, die Sie erstellen möchten, hier nun einige zu beachtende Aspekte:
- Sie müssen eine Benennungskonvention für Benutzer- und Anzeigenamen sowie Aliase einrichten bzw. implementieren. Benutzernamen können z.B. in dieser Reihenfolge erstellt werden: Nachname des Benutzers, Punkt, Vorname des Benutzers. Der Benutzername von „John Smith“ in „contoso.com“ würde z.B. „Smith.John@contoso.com“ lauten. Sie müssen ähnliche Regeln für Anzeigenamen implementieren. Sie können z.B. den Abteilungsnamen an den Anzeigenamen, wie bei „John Smith (Buchhaltung)“, und als Alias hinzufügen.
- Sie müssen eine Konvention für das Anfangskennwort des neu erstellten Benutzers implementieren und eine sichere Möglichkeit bestimmen, wie die neuen Benutzer ihr Kennwort erhalten. Hierfür häufig verwendete Methoden sind das Generieren eines Zufallskennworts, das per E-Mail an den neuen Benutzer oder seinen Vorgesetzten gesendet wird.
Wenn diese Voraussetzungen erfüllt sind, lassen Sie uns einen Blick darauf werfen, was die CSV-Datei enthalten muss, mit deren Hilfe wir die neuen Benutzer erstellen. Es folgt ein Beispiel der CSV-Datei, die wir in diesem Artikel verwenden:
Firstname,MiddleInitials,Lastname,Department,JobTitle
Peter,S,Fischer,Development,Manager
James,T,McGuire,Research,Assistant
Karen,R,Cristo,Sales,Director
Zur Massenerstellung dieser Benutzer mithilfe von PowerShell müssen wir einige Schritte ausführen:
- Einrichten einer PowerShell-Sitzung mit Ihrem Verzeichnis (hierfür verwenden wir das Cmdlet
Connect-AzureAD
) - Importieren von Daten aus der CSV-Datei in Ihre PowerShell-Sitzung mit dem Cmdlet
Import-CSV
- (Für jede Zeile in der Datei) Erstellen der erforderlichen Parameter zum Erstellen eines neuen Benutzers
- Ausführen des Cmdlets zum Erstellen des neuen Benutzers unter Verwendung des Cmdlets
New-AzureADUser
Bei Verwenden dieses Skripts in einer Produktionsumgebung würden Sie wahrscheinlich einige zusätzliche Teile hinzufügen:
- Fehlerbehandlung: Vorgehensweise, wenn ein Benutzer nicht erstellt werden kann
- Ausführungsberichterstellung: Nach Abschluss des Skripts eine Übersicht bieten, was es geleistet hat, wie z.B. Anzahl der erstellten Benutzer usw.
Einstweilen überspringen wir diese Teile und konzentrieren uns auf die wichtigsten Funktionen.
Hier ist das Skript, mit dem Sie die CSV-Datei wie gezeigt importieren und neue Benutzer erstellen können. Damit dieses Skript in Ihrer Umgebung funktioniert, müssen Sie die Werte im ersten Abschnitt in die für Ihre Umgebung richtigen Werte ändern.
Hinweis: Das Kennwort der neuen Benutzer muss den Komplexitätsregeln für Kennwörter entsprechen, die Sie für Ihr Verzeichnis festgelegt haben. Hinweis: Das Administratorkonto, das Sie hier angeben, muss einem Administrator im Verzeichnis gehören, das Sie angeben.
###
### These are vairable you need to update to reflect your environment
###
$Admin = "Admin@contoso.com"
$AdminPassword = "my password"
$Directory = "contoso.com"
$NewUserPassword = "newuserspasswords"
$CsvFilePath = "C:\work\users.csv"
###
### Create a PowerShell connection to my directory. If you do not want to specify the password in the script, you can simply replace this with "Connect-AzureAD", which will prompt for a username and password.
###
$SecPass = ConvertTo-SecureString $AdminPassword -AsPlainText -Force
$Cred = New-Object System.Management.Automation.PSCredential ($Admin, $SecPass)
Connect-AzureAD -Credential $cred
###
### Create a new Password Profile for the new users. We'll be using the same password for all new users in this example
###
$PasswordProfile = New-Object -TypeName Microsoft.Open.AzureAD.Model.PasswordProfile
$PasswordProfile.Password = $NewUserPassword
###
### Import the csv file. You will need to specify the path and file name of the CSV file in this cmdlet
###
$NewUsers = import-csv -Path $CsvFilePath
###
### Loop through all new users in the file. We'll use the ForEach cmdlet for this.
###
Foreach ($NewUser in $NewUsers) {
###
### Construct the UserPrincipalName, the MailNickName and the DisplayName from the input data in the file
###
$UPN = $NewUser.Firstname + "." + $NewUser.LastName + "@" + $Directory
$DisplayName = $NewUser.Firstname + " " + $NewUser.Lastname + " (" + $NewUser.Department + ")"
$MailNickName = $NewUser.Firstname + "." + $NewUser.LastName
###
### Now that we have all the necessary data for to create the new user, we can execute the New-AzureADUser cmdlet
###
New-AzureADUser -UserPrincipalName $UPN -AccountEnabled $true -DisplayName $DisplayName -GivenName $NewUser.FirstName -MailNickName $MailNickName -Surname $NewUser.LastName -Department $Newuser.Department -JobTitle $NewUser.JobTitle -PasswordProfile $PasswordProfile
###
### End the Foreach loop
###
}
Hinweis: Nach der erfolgreichen Ausführung dieses Skripts wurden die neuen Benutzer in Ihrem Azure Active Directory erstellt. Nicht ethat, da wir -AccountEnabled = $True angegeben haben, können die neuen Benutzer ihr Kennwort sofort verwenden, um sich beim Verzeichnis anzumelden. Wenn Sie nicht möchten, dass die Benutzerkonten direkt nach dem Ausführen des Skripts aktiv sein sollen, können Sie "-AccountEnabled = $False" angeben und die Konten später mithilfe des Cmdlets Set-AzureADUser aktivieren.