Entfernen von Gruppenmitgliedern aus Microsoft Entra ID per Massenvorgang
Sie können eine große Anzahl von Mitgliedern aus einer Gruppe entfernen, indem Sie im Portal für Microsoft Entra ID, Teil von Microsoft Entra, eine Datei mit trennzeichengetrennten Werten (CSV) verwenden, um Gruppenmitglieder per Massenvorgang zu entfernen.
Grundlegendes zur CSV-Vorlage
Laden Sie die CSV-Vorlage für den Massenupload herunter, und füllen Sie sie aus, um Microsoft Entra-Gruppenmitglieder in einem einzigen Vorgang hinzuzufügen. Ihre CSV-Vorlage ähnelt etwa dem folgenden Beispiel:
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>. z. B.
Member object ID or user principal name [memberObjectIdOrUpn] Required
. Einige ältere Versionen der Vorlage können geringfügige Abweichungen aufweisen. Bei Änderungen an der Gruppenmitgliedschaft können Sie die Elementobjekt-ID oder den Benutzerprinzipalnamen auswählen. - 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.
Weitere Leitfäden
- 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. Alle anderen von Ihnen hinzugefügten Spalten werden ignoriert und nicht verarbeitet.
- Es wird empfohlen, möglichst häufig die neueste Version der CSV-Vorlage herunterzuladen.
Massenentfernung von Gruppenmitgliedern
Tipp
Die Schritte in diesem Artikel können je nach dem Portal, mit dem Sie beginnen, geringfügig variieren.
Melden Sie sich beim Microsoft Entra Admin Center mindestens als Gruppenadministrator an.
Wählen Sie Microsoft Entra ID aus.
Wählen Sie Gruppen>Alle Gruppen aus.
Öffnen Sie die Gruppe, aus der Sie Mitglieder entfernen möchten, und wählen Sie Mitglieder aus.
Wählen Sie auf der Seite Mitglieder die Option Mitglieder entfernen aus.
Wählen Sie auf der Seite Massenentfernung von Gruppenmitgliedern die Option Herunterladen aus, um die CSV-Dateivorlage mit den erforderlichen Gruppenmitgliedseigenschaften zu erhalten.
Öffnen Sie die CSV-Datei, und fügen Sie für jedes aus der Gruppe zu entfernende Gruppenmitglied eine Zeile hinzu (die erforderlichen Werte sind „Mitgliedsobjekt-ID“ oder „Benutzerprinzipalname“). Erforderliche Werte sind Memberobjekt-ID oder Benutzerprinzipalname. Speichern Sie dann die Datei.
Navigieren Sie auf der Seite Massenentfernung von Gruppenmitgliedern unter CSV-Datei hochladen zur entsprechenden Datei. Wenn Sie die Datei auswählen, wird mit der Überprüfung der CSV-Datei begonnen.
Nach der Überprüfung des Dateiinhalts wird auf der Seite für den Massenimport die Meldung Datei erfolgreich hochgeladen angezeigt. Wenn Fehler vorliegen, müssen Sie diese beheben, bevor Sie den Auftrag übermitteln können.
Wenn die Datei die Überprüfung bestanden hat, wählen Sie Senden aus, um den Massenvorgang zu starten, der die Gruppenmitglieder aus der Gruppe entfernt.
Nach Abschluss des Entfernungsvorgangs wird eine Benachrichtigung angezeigt, dass der Massenvorgang erfolgreich abgeschlossen wurde.
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 bei Massenentfernung.
Überprüfen des Status für Entfernen
Sie können den Status aller Ihrer ausstehenden Massenanforderungen auf der Seite Ergebnisse von Massenvorgängen anzeigen.
Wenn Sie ausführliche Informationen zu jedem Zeilenelement des Massenvorgangs erhalten möchten, markieren Sie die Werte unter der Spalte # Erfolg, # Fehler oder Anforderungen insgesamt. Wenn Fehler aufgetreten sind, werden die Fehlerursachen aufgeführt.
Diensteinschränkungen bei Massenentfernung
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"