Es gibt viele Gruppen in der Organisation und wir möchten gerne wissen, welche Mitglieder zu jeder Gruppe hinzugefügt werden. Wir können die Gruppen manuell durchgehen und aufschreiben, aber das wird ewig dauern. Eine andere Methode besteht darin, PowerShell zu verwenden, um den Prozess zu beschleunigen. In diesem Artikel erfahren Sie, wie Sie Microsoft 365-Gruppenmitglieder mit PowerShell in CSV exportieren.
Microsoft 365-Gruppentypen
Es gibt 4 verschiedene Gruppentypen in Microsoft 365 und wir möchten alle diese Gruppen, einschließlich ihrer Mitglieder, exportieren.
1. Microsoft 365
Ermöglicht Teams die Zusammenarbeit, indem ihnen eine Gruppen-E-Mail-Adresse und ein gemeinsamer Arbeitsbereich für Konversationen, Dateien und Kalender zur Verfügung gestellt werden. In Outlook werden diese als Gruppen bezeichnet.
2. Verteilerliste
Erstellt eine E-Mail-Adresse für eine Gruppe von Personen.
3. Dynamische Verteilerliste
Sendet eine E-Mail an alle Mitglieder der Liste. Die Mitgliederliste der Gruppe wird alle 24 Stunden basierend auf den von Ihnen festgelegten Filtern und Bedingungen aktualisiert.
4. E-Mail-fähige Sicherheit
Sendet Nachrichten an alle Mitglieder der Gruppe und gewährt Zugriff auf Ressourcen wie OneDrive, SharePoint und Administratorrollen
Finden Sie Microsoft 365-Gruppen
Um alle Gruppen in Microsoft 365 zu finden, gehen Sie folgendermaßen vor:
- Melden Sie sich anMicrosoft Exchange Admin Center
- KlickenEmpfänger > Gruppen
- Klicken Sie aufGruppentypum die Gruppen aufzulisten

Schauen wir uns den nächsten Schritt zum Exportieren von Microsoft 365-Gruppenmitgliedern mit PowerShell an.
Erhalten Sie Microsoft 365-Gruppenmitglieder mit einem PowerShell-Skript
Die PowerShell „Export-M365GroupMembers.ps1“ ruft alle Microsoft 365-Gruppentypen, einschließlich ihrer Mitglieder, ab und exportiert sie in eine CSV-Datei.
Für jede Microsoft 365-Gruppe werden die folgenden Informationen erfasst:
- Gruppen-ID
- GroupDisplayName
- Gruppentyp
- Benutzeranzeigename
- Benutzerprinzipalname
- Benutzeralias
- Benutzertyp
- UserAccountEnabled
Notiz:Das Skript exportiert alle Microsoft 365-Gruppentypen. Wenn in einer bestimmten Gruppe keine Gruppenmitglieder vorhanden sind, wird dies als angezeigtN / A(nicht anwendbar).
1. Installieren Sie das Microsoft Graph PowerShell-Modul
Bevor wir fortfahren und die Microsoft 365-Gruppenmitglieder aus allen Gruppen abrufen können, müssen wir das Microsoft Graph PowerShell-Modul installieren.
Starten Sie Windows PowerShell als Administrator und führen Sie den folgenden Befehl aus.
Install-Module Microsoft.Graph -ForceWichtig:Aktualisieren Sie immer auf die neueste Version des Microsoft Graph PowerShell-Moduls, bevor Sie ein Cmdlet oder Skript ausführen, um Fehler und falsche Ergebnisse zu vermeiden.
2. Bereiten Sie das PowerShell-Skript zum Exportieren von Microsoft 365-Gruppenmitgliedern vor
Erstellen Sie zwei Ordner auf dem(C:)fahren:
- Temp
- Skripte
Laden Sie das PowerShell-Skript Export-M365GroupMembers.ps1 herunter und platzieren Sie es inC:SkripteOrdner. Das Skript exportiert die CSV-Datei in dasC:TempOrdner.
Stellen Sie sicher, dass die Datei entsperrt ist, um Fehler beim Ausführen des Skripts zu vermeiden. Lesen Sie mehr im Artikel Fehler „Nicht digital signiert“ beim Ausführen des PowerShell-Skripts.
Eine andere Möglichkeit besteht darin, den folgenden Code zu kopieren und in Notepad einzufügen. Geben Sie ihm den NamenExport-M365GroupMembers.ps1und legen Sie es in dieC:SkripteOrdner.
<#
.SYNOPSIS
Export-M365GroupMembers.ps1
.DESCRIPTION
Export Microsoft 365 Group Members to CSV file with PowerShell.
.LINK
www.alitajran.com/export-microsoft-365-group-members-to-csv-powershell/
.NOTES
Written by: ALI TAJRAN
Website: www.alitajran.com
LinkedIn: linkedin.com/in/alitajran
.CHANGELOG
V1.00, 03/18/2024 - Initial version
#>
# CSV file path to export
$CsvPath = "C:tempM365GroupMembers.csv"
# Connect to Microsoft Graph with specified scopes
Connect-MgGraph -Scopes "User.Read.All", "Group.Read.All"
# Retrieve all groups
$groups = Get-MgGroup -All
# Get properties
$Properties = @(
'Id', 'DisplayName', 'UserPrincipalName', 'UserType', 'AccountEnabled'
)
# Initialize a List to store the data
$Report = [System.Collections.Generic.List[Object]]::new()
# Set up the progress bar parameters
$totalGroups = $groups.Count
$currentGroup = 0
# Iterate through each group and retrieve group members
foreach ($group in $groups) {
# Retrieve group members using the valid Group ID
$members = Get-MgGroupMember -GroupId $group.id -All
# Determine the group type
$groupType = if ($group.groupTypes -eq "Unified" -and $group.securityEnabled) { "Microsoft 365 (security-enabled)" }
elseif ($group.groupTypes -eq "Unified" -and !$group.securityEnabled) { "Microsoft 365" }
elseif (!($group.groupTypes -eq "Unified") -and $group.securityEnabled -and $group.mailEnabled) { "Mail-enabled security" }
elseif (!($group.groupTypes -eq "Unified") -and $group.securityEnabled) { "Security" }
elseif (!($group.groupTypes -eq "Unified") -and $group.mailEnabled) { "Distribution" }
else { "N/A" }
# If there are no members, create an object with empty values
if ($members.Count -eq 0) {
$ReportLine = [PSCustomObject][ordered]@{
GroupId = $group.Id
GroupDisplayName = $group.DisplayName
GroupType = $groupType
UserDisplayName = "N/A"
UserPrincipalName = "N/A"
UserAlias = "N/A"
UserType = "N/A"
UserAccountEnabled = "N/A"
}
# Add the report line to the List
$Report.Add($ReportLine)
}
else {
# Iterate through each group member and retrieve user details
foreach ($member in $members) {
$user = Get-MgUser -UserId $member.Id -Property $Properties -ErrorAction SilentlyContinue | Select-Object $Properties
# Check if $user is not null before accessing properties
if ($user.Count -ne 0) {
# Extract the alias from the UserPrincipalName
$alias = $user.UserPrincipalName.Split("@")[0]
# Create an ordered custom object with properties in a specific order
$ReportLine = [PSCustomObject][ordered]@{
GroupId = $group.Id
GroupDisplayName = $group.DisplayName
GroupType = $groupType
UserDisplayName = $user.DisplayName
UserPrincipalName = $user.UserPrincipalName
UserAlias = $alias
UserType = $user.UserType
UserAccountEnabled = $user.AccountEnabled
}
# Add the report line to the List
$Report.Add($ReportLine)
}
}
}
# Update the progress bar
$currentGroup++
$status = "{0:N0}" -f ($currentGroup / $totalGroups * 100)
$progressParams = @{
Activity = "Retrieving Group Members"
Status = "Processing group: $($group.DisplayName) - $currentGroup of $totalGroups : $status% completed"
PercentComplete = ($currentGroup / $totalGroups) * 100
}
Write-Progress @progressParams
}
# Complete the progress bar
Write-Progress -Activity "Retrieving Group Members" -Completed
# Export all user information to a CSV file
$Report | Sort-Object GroupDisplayName | Export-Csv $CsvPath -NoTypeInformation -Encoding utf8- Zeile 21:Bearbeiten Sie den CSV-Dateipfad
3. Führen Sie das PowerShell-Skript „Microsoft 365-Gruppenmitglieder exportieren“ aus
Rufen Sie alle Microsoft 365-Gruppen, einschließlich ihrer Mitglieder, ab und exportieren Sie sie in eine CSV-Datei.
Führen Sie den folgenden Befehl aus, um das Skript Export-M365GroupMembers.ps1 auszuführen.
Mehr lesen:Exportieren Sie Microsoft 365-Verteilergruppenmitglieder mit PowerShell in CSV
c:scripts.Export-M365GroupMembers.ps14. Öffnen Sie den Microsoft 365-Gruppenmitgliederbericht
Das PowerShell-Skript Export-M365GroupMembers.ps1 exportiert alle Microsoft 365-Gruppenmitglieder in eine CSV-Datei.
Finden Sie die DateiM365GroupMembers.csvim WegC:Temp.

Öffnen Sie die CSV-Datei mit Ihrer Lieblingsanwendung. In unserem Beispiel ist es Microsoft Excel.

Der Microsoft 365-Gruppenmitgliederbericht sieht großartig aus.
Abschluss
Sie haben gelernt, wie Sie Microsoft 365-Gruppenmitglieder mit PowerShell in CSV exportieren. Sie können die Gruppen zwar aus dem Admin Center exportieren, die Gruppenmitglieder werden jedoch nicht abgerufen. Sie müssen PowerShell verwenden, um einen benutzerdefinierten Microsoft 365-Gruppenbericht zu erstellen.
Hat Ihnen dieser Artikel gefallen? Möglicherweise gefällt Ihnen auch die Option „Anmeldung über freigegebene Postfächer blockieren“. Vergessen Sie nicht, uns zu folgen und diesen Artikel zu teilen.











