Massenerstellung von Benutzer*innen in Microsoft Entra ID

Microsoft Entra ID (Teil von Microsoft Entra) unterstützt Vorgänge der Massenerstellung und -löschung von Benutzer*innen sowie das Herunterladen von Benutzerlisten. Füllen Sie einfach die CSV-Vorlage aus, die Sie im Azure-Portal herunterladen können.

Erforderliche Berechtigungen

Zur Massenerstellung von Benutzern im Verwaltungsportal müssen Sie mindestens als Benutzeradministrator angemeldet sein.

Grundlegendes zur CSV-Vorlage

Laden Sie die CSV-Vorlage für den Massenupload herunter, und füllen Sie sie aus, um mehrere Microsoft Entra-Benutzer*innen gleichzeitig zu erstellen. Die heruntergeladene CSV-Vorlage ähnelt etwa dem folgenden Beispiel:

Screenshot des hochzuladenden Arbeitsblatts und Anmerkungen zur Erläuterung des Zwecks und der Werte für jede Zeile und Spalte.

Warnung

Wenn Sie nur einen Eintrag mithilfe der CSV-Vorlage hinzufügen, müssen Sie Zeile 3 beibehalten und den neuen Eintrag zu Zeile 4 hinzufügen.

Achten Sie darauf, die Erweiterung .csv hinzuzufügen und führende Leerzeichen vor userPrincipalName, passwordProfile und accountEnabled zu entfernen.

CSV-Vorlagenstruktur

Die Zeilen der heruntergeladenen CSV-Vorlage lauten wie folgt:

  • Versionsnummer: Die erste Zeile, die die Versionsnummer enthält, muss in der hochzuladenden CSV-Datei enthalten sein.
  • Spaltenüberschriften: Das Format der Spaltenüberschriften lautet <Elementname> [Eigenschaftenname] <Required (erforderlich) oder leer>. Beispiel: Name [displayName] Required. Einige ältere Versionen der Vorlage können geringfügige Abweichungen aufweisen.
  • Beispielzeile: In der Vorlage ist eine Zeile mit Beispielen für zulässige Werte für alle Spalten enthalten. Sie müssen die Beispielzeile entfernen und durch Ihre eigenen Einträge ersetzen.

Zusätzliche Anleitungen

  • Die ersten zwei Zeilen der hochzuladenden Vorlage dürfen nicht entfernt oder geändert werden, da der Upload sonst nicht verarbeitet werden kann.
  • Die erforderlichen Spalten werden zuerst aufgelistet.
  • Es wird davon abgeraten, der Vorlage neue Spalten hinzuzufügen. Jegliche Spalten, die Sie zusätzlich hinzufügen, werden ignoriert und nicht verarbeitet.
  • Es wird empfohlen, möglichst häufig die neueste Version der CSV-Vorlage herunterzuladen.
  • Vergewissern Sie sich unbedingt, dass vor und nach allen Feldern keine unbeabsichtigten Leerräume vorhanden sind. Beim Benutzerprinzipalnamen würde ein solcher Leerraum einen Importfehler verursachen.
  • Stellen Sie sicher, dass die Werte in Anfangspasswort mit der derzeit aktiven Passwortrichtlinie übereinstimmen.

So erstellen Sie Benutzer in einem Massenvorgang

  1. Melden Sie sich beim Microsoft Entra Admin Center mindestens als Benutzeradministrator an.

  2. Wählen Sie Microsoft Entra ID aus.

  3. Wählen Sie Alle Benutzer>Benutzer>Massenerstellung aus.

  4. Wählen Sie auf der Seite Massenerstellung von Benutzern die Option Herunterladen aus, um eine gültige CSV-Datei mit Benutzereigenschaften herunterzuladen. Fügen Sie dann die Benutzer hinzu, die Sie erstellen möchten.

    Screenshot, der anzeigt, wie eine lokale CSV-Datei ausgewählt wird, in der Sie die Benutzer*innen auflisten, die Sie hinzufügen möchten.

  5. Öffnen Sie die CSV-Datei, und fügen Sie eine Zeile für jeden Benutzer hinzu, den Sie erstellen möchten. Die einzigen erforderlichen Werte sind Name, Benutzerprinzipalname, Anfängliches Kennwort und Anmeldung blockieren (Ja/Nein) . Speichern Sie dann die Datei.

    Screenshot, der ein Beispiel für die CSV-Datei anzeigt, die die Namen und IDs der zu erstellenden Benutzer*innen enthält.

  6. Navigieren Sie auf der Seite Massenerstellung von Benutzern unter „CSV-Datei hochladen“ zur entsprechenden Datei. Wenn Sie die Datei auswählen und auf Senden klicken, wird mit der Überprüfung der CSV-Datei begonnen.

  7. Nach der Überprüfung des Dateiinhalts wird die Meldung Datei erfolgreich hochgeladen angezeigt. Wenn Fehler vorliegen, müssen Sie diese beheben, bevor Sie den Auftrag übermitteln können.

  8. Wenn Ihre Datei die Überprüfung bestanden hat, wählen Sie Senden aus, um den Azure-Massenvorgang zum Importieren der neuen Benutzer zu starten.

  9. Nach Abschluss des Importvorgangs wird eine Benachrichtigung mit dem Auftragsstatus des Massenvorgangs angezeigt.

Wenn Fehler auftreten, können Sie die Ergebnisdatei auf der Seite Ergebnisse von Massenvorgängen herunterladen und anzeigen. Die Datei enthält den Grund für die einzelnen Fehler. Die Dateiübermittlung muss mit der angegebenen Vorlage übereinstimmen und die genauen Spaltennamen enthalten. Weitere Informationen zu Einschränkungen für Massenvorgänge finden Sie unter Diensteinschränkungen beim Massenimport.

Status überprüfen

Sie können den Status aller Ihrer ausstehenden Massenanforderungen auf der Seite Ergebnisse von Massenvorgängen anzeigen.

Screenshot, der anzeigt, wie der Status des Vorgangs auf der Seite der Ergebnisse für Massenvorgänge überprüft wird.

Als Nächstes können Sie entweder im Azure-Portal oder mithilfe von PowerShell überprüfen, ob die erstellten Benutzer*innen in der Microsoft Entra-Organisation vorhanden sind.

Überprüfen eines Benutzers

  1. Melden Sie sich beim Microsoft Entra Admin Center mindestens als Benutzeradministrator an.
  2. Wählen Sie Microsoft Entra ID aus.
  3. Wählen Sie Alle Benutzer>Benutzer aus.
  4. Wählen Sie unter Anzeigen die Option Alle Benutzer aus, und überprüfen Sie, ob die erstellten Benutzer aufgelistet werden.

Überprüfen von Benutzern mit PowerShell

Führen Sie den folgenden Befehl aus:

Get-MgUser -Filter "UserType eq 'Member'"

Jetzt sollten die erstellten Benutzer aufgelistet werden.

Diensteinschränkungen beim Massenimport

Beachten Sie, dass jede Massenvorgangsaktivität bis zu einer Stunde dauern kann.

Bei Massenvorgängen im Microsoft Entra-Verwaltungsportal kann es bei sehr großen Mandanten zu Timeouts und infolgedessen zu Fehlern kommen. Diese Einschränkung ist ein bekanntes Problem aufgrund von Skalierungseinschränkungen. Das Microsoft-Entwicklungsteam arbeitet an einem neuen Dienst, der diese Einschränkung schließlich beheben wird.

Hinweis

Beim Ausführen von Massenvorgängen, z. B. Importieren oder Erstellen, tritt möglicherweise ein Problem auf, wenn der Massenvorgang nicht innerhalb der Stunde abgeschlossen ist. Um dieses Problem zu umgehen, empfehlen wir, die Anzahl der pro Batch verarbeiteten Datensätze aufzuteilen. Vor dem Starten eines Exports können Sie z. B. das Resultset einschränken, indem Sie nach einem Gruppentyp oder Benutzernamen filtern, um die Größe der Ergebnisse zu verringern. Indem Sie Ihre Filter verfeinern, beschränken Sie im Wesentlichen die vom Massenvorgang zurückgegebenen Daten.

Eine weitere Problemumgehung für dieses Problem besteht darin, PowerShell für direkte Microsoft Graph-API-Aufrufe zu verwenden. Für den Massendownload von Benutzern und Gruppen wird empfohlen, die PowerShell-Cmdlets GET-MgGroup -All und GET-MgUser -All zu verwenden.

Die folgenden PowerShell-Codebeispiele beziehen sich auf Massenvorgänge im Zusammenhang mit:

Benutzer

Massendownload aller Benutzer

# Import the Microsoft Graph module 
Import-Module Microsoft.Graph 

# Authenticate to Microsoft Graph (you may need to provide your credentials) 
Connect-MgGraph -Scopes "User.Read.All" 

# Get all users using Get-MgUser 
$users = Get-MgUser -All -ConsistencyLevel eventual -Property Id, DisplayName, UserPrincipalName,UserType,OnPremisesSyncEnabled,CompanyName,CreationType 

# Specify the output CSV file path 
$outputCsvPath = "C:\\Users\\YourUsername\\Documents\\Users.csv"  

# Create a custom object to store user data 
$userData = @() 

# Loop through each user and collect relevant data 
foreach ($user in $users) { 
    $userObject = [PSCustomObject]@{ 
        Id = $user.Id 
        DisplayName = $user.DisplayName 
        UserPrincipalName = $user.UserPrincipalName 
        UserType = $user.UserType 
        OnPremisesSyncEnabled = $user.OnPremisesSyncEnabled 
        CompanyName = $user.CompanyName 
        CreationType = $user.CreationType 
    } 
    $userData += $userObject 
} 

# Export user data to a CSV file 
$userData | Export-Csv -Path $outputCsvPath -NoTypeInformation 

# Disconnect from Microsoft Graph 
Disconnect-MgGraph 

Write-Host "User data exported to $outputCsvPath" 

Massenerstellung von Benutzern

# Import the Microsoft Graph module 
Import-Module Microsoft.Graph 

# Authenticate to Microsoft Graph (you may need to provide your credentials) 
Connect-MgGraph -Scopes "User.ReadWrite.All" 

# Specify the path to the CSV file containing user data 
$csvFilePath = "C:\\Path\\To\\Your\\Users.csv" 

# Read the CSV file (adjust the column names as needed) 
$usersData = Import-Csv -Path $csvFilePath 

# Loop through each row in the CSV and create users \
foreach ($userRow in $usersData) { 
    $userParams = @{ 
        DisplayName = $userRow.'Name [displayName] Required' 
        UserPrincipalName = $userRow.'User name [userPrincipalName] Required' 
        PasswordProfile = @{ 
            Password = $userRow.'Initial password [passwordProfile] Required' 
        } 
        AccountEnabled = $true 
        MailNickName = $userRow.mailNickName 
    } 
    try { 
        New-MgUser @userParams 
        Write-Host "User $($userRow.UserPrincipalName) created successfully." 
    } catch { 
        Write-Host "Error creating user $($userRow.UserPrincipalName): $($_.Exception.Message)" 
    } 
} 

# Disconnect from Microsoft Graph 
Disconnect-MgGraph 

Write-Host "Bulk user creation completed." 

Hinweis

Stellen Sie sicher, dass die CSV-Datei die erforderlichen Spalten enthält (z. B. DisplayName, UserPrincipalName usw.). Passen Sie außerdem das Skript so an, dass es den tatsächlichen Spaltennamen in Ihrer CSV-Datei entspricht.

Massenlöschung von Benutzern

# Import the Microsoft Graph module 
Import-Module Microsoft.Graph 

# Authenticate to Microsoft Graph (you may need to provide your credentials) 
Connect-MgGraph -Scopes "User.ReadWrite.All" 

# Specify the path to the CSV file containing user data 
$csvFilePath = "C:\\Path\\To\\Your\\Users.csv" 

# Read the CSV file (adjust the column names as needed) 
$usersData = Import-Csv -Path $csvFilePath 

# Loop through each row in the CSV and delete users 
foreach ($userRow in $usersData) { 
    try { 
        Remove-MgUser -UserId $userRow.UserPrincipalName -Confirm:$false 
        Write-Host "User $($userRow.UserPrincipalName) deleted successfully." 
    } catch { 
        Write-Host "Error deleting user $($userRow.UserPrincipalName): $($_.Exception.Message)" 
    } 
} 

# Disconnect from Microsoft Graph 
Disconnect-MgGraph 

Write-Host "Bulk user deletion completed." 

Hinweis

Stellen Sie sicher, dass die CSV-Datei die erforderlichen Spalten enthält (z. B. UserPrincipalName). Passen Sie außerdem das Skript so an, dass es den tatsächlichen Spaltennamen in Ihrer CSV-Datei entspricht.

Gruppen

Massendownload von Gruppenlisten

Import-Module Microsoft.Graph.Groups 

 # Authenticate to Microsoft Graph (you may need to provide your credentials) 
 Connect-MgGraph -Scopes "Group.Read.All" 

 # Get the group members 
 $groups = Get-MgGroup -All | Select displayName, Id, groupTypes,mail 

 # Create a custom object to store group data 
$groupData = @() 

# Loop through each group and collect relevant data 
foreach ($group in $groups) { 
    if ($group.groupTypes -contains "Unified"){$groupType = "Microsoft 365"} 
    else {$groupType = "Security"} 
    if ($group.groupTypes -contains "DynamicMembership"){$membershipType = "Dynamic"} 
    else {$membershipType = "Assigned"} 
    $groupObject = [PSCustomObject]@{ 
        Id = $group.Id 
        DisplayName = $group.displayName 
        Mail = $group.mail 
        GroupType = $groupType 
        MemebershipType = $membershipType 
    }   
    $groupData += $groupObject 
} 

 # Specify the output CSV file path 
 $outputCsvPath = "C:\\Users\\cewu\\Documents\\Groups.csv" 

 $groupData| Export-Csv -Path $outputCsvPath -NoTypeInformation 
 
 Write-Host "Group members exported to $outputCsvPath" 

Massendownload der Mitglieder einer Gruppe

Import-Module Microsoft.Graph.Groups 

 # Authenticate to Microsoft Graph (you may need to provide your credentials) 
 Connect-MgGraph -Scopes "Group.Read.All,GroupMember.Read.All" 

 # Set the group ID of the group whose members you want to download 
 $groupId = "your_group_id" 

 # Get the group members 
 $members = Get-MgGroupMember -GroupId $groupId -All | select * -ExpandProperty additionalProperties | Select-Object @( 
                'id'     
                @{  Name       = 'userPrincipalName' 
                    Expression = { $_.AdditionalProperties["userPrincipalName"] } 
                } 
                @{  Name = 'displayName' 
                Expression = { $_.AdditionalProperties["displayName"] } 
                } 
            ) 

 # Specify the output CSV file path 
 $outputCsvPath = "C:\\Users\\YourUserName\\Documents\\GroupMembers.csv" 

 $members| Export-Csv -Path $outputCsvPath -NoTypeInformation 

# Disconnect from Microsoft Graph 
Disconnect-MgGraph 

 Write-Host "Group members exported to $outputCsvPath"  

Hinzufügen von Mitgliedern in einem Massenvorgang

Import-Module Microsoft.Graph.Groups 

 # Authenticate to Microsoft Graph (you may need to provide your credentials) 
 Connect-MgGraph -Scopes "GroupMember.ReadWrite.All" 

# Import the CSV file 
$members = Import-Csv -Path "C:\path\to\your\file.csv" 

# Define the Group ID 
$groupId = "your-group-id" 

# Iterate over each member and add them to the group 
foreach ($member in $members) { 
    try{ 
        New-MgGroupMember -GroupId $groupId -DirectoryObjectId $member.memberObjectId 
  	 Write-Host "Added $($member.memberObjectId) to the group."  
    } 
    Catch{ 
        Write-Host "Error adding member $($member.memberObjectId):$($_.Exception.Message)" 
    } 
} 

# Disconnect from Microsoft Graph 
Disconnect-MgGraph 

Entfernen von Mitgliedern in einem Massenvorgang

Import-Module Microsoft.Graph.Groups 

 # Authenticate to Microsoft Graph (you may need to provide your credentials) 
 Connect-MgGraph -Scopes "GroupMember.ReadWrite.All" 

# Import the CSV file 
$members = Import-Csv -Path "C:\path\to\your\file.csv" 

# Define the Group ID 
$groupId = "your-group-id" 

# Iterate over each member and add them to the group 
foreach ($member in $members) { 
    try{ 
        Remove-MgGroupMemberByRef -GroupId $groupId -DirectoryObjectId $member.memberObjectId \
        Write-Host "Removed $($member.memberObjectId) from the group." 
    } 
    Catch{ 
        Write-Host "Error removing member $($member.memberObjectId):$($_.Exception.Message)" 
    } 
} 

# Disconnect from Microsoft Graph 
Disconnect-MgGraph 

Geräte

Massendownload aller Geräte

Import-Module Microsoft.Graph 

 # Authenticate to Microsoft Graph (you may need to provide your credentials) 
 Connect-MgGraph -Scopes "Device.Read.All" 

 # Get all devices  
 $devices = Get-MgDevice -All |select displayName,deviceId,operatingSystem,operatingSystemVersion,isManaged,isCompliant,mdmAppId,registeredOwners,TrustType 

 # Specify the output CSV file path 
 $outputCsvPath = "C:\\Users\\YourUserName\\Documents\\Devices.csv" 

 $devices| Export-Csv -Path $outputCsvPath -NoTypeInformation 

 Write-Host "Devices exported to $outputCsvPath"  

Nächste Schritte