Es gibt viele Verteilergruppen und wir möchten alle Mitglieder und Eigentümer gewinnen. Wir können die Gruppen im Microsoft 365 Admin Center einzeln durchgehen, aber das nimmt viel Zeit in Anspruch. Lassen Sie uns die Aufgabe automatisieren und einen Bericht mit allen Mitgliedern, Eigentümern und weiteren Informationen exportieren. In diesem Artikel erfahren Sie, wie Sie Mitglieder einer Microsoft 365-Verteilergruppe mit einem PowerShell-Skript massenhaft in eine CSV-Datei exportieren.
Suchen Sie nach Microsoft 365-Verteilergruppen
Um alle Verteilergruppen in Microsoft 365 zu finden, gehen Sie folgendermaßen vor:
- Melden Sie sich anMicrosoft Exchange Admin Center
- KlickenEmpfänger > Gruppen
- Klicken Sie aufGruppentypum die Verteilergruppen aufzulisten

Sehen wir uns den nächsten Schritt zum Exportieren von Microsoft 365-Verteilergruppenmitgliedern mit PowerShell an.
Erhalten Sie Microsoft 365-Verteilergruppenmitglieder mit einem PowerShell-Skript
Die PowerShell „Export-M365DGMembers.ps1“ ruft alle Microsoft 365-Verteilergruppen, einschließlich ihrer Mitglieder, ab und exportiert sie in eine CSV-Datei.
Für jede Microsoft 365-Verteilergruppe werden die folgenden Informationen erfasst:
- Anzeigename
- Beschreibung
- PrimarySmtpAddress
- SecondarySmtpAddress
- Alias
- Gruppentyp
- Empfängertyp
- SyncedFromOnPremises
- Mitglied
- MemberPrimarySmtpAddress
- Mitgliedstyp
- Eigentümer
- HiddenFromAddressLists
- MemberJoinRestriction
- MemberDepartRestriction
- RequireSenderAuthenticationEnabled
- AcceptMessagesOnlyFrom
- SendonBehalf
- schicken
- Wann erstellt
- Wann geändert
Notiz:Möchten Sie eine Liste aller Verteilergruppenmitglieder in Exchange Server erhalten? Lesen Sie den Artikel Verteilergruppenmitglieder mit PowerShell in CSV exportieren.
1. Installieren Sie das Exchange Online PowerShell-Modul
Bevor wir fortfahren und die Microsoft 365-Mitglieder und -Besitzer aus allen Verteilergruppen abrufen können, müssen wir das Exchange Online PowerShell-Modul installieren.
Starten Sie Windows PowerShell als Administrator und führen Sie die folgenden Befehle aus.
Install-Module -Name ExchangeOnlineManagement -Force2. Bereiten Sie das PowerShell-Skript „Mitglieder der Microsoft 365-Verteilergruppe exportieren“ vor
Erstellen Sie zwei Ordner auf dem(C:)fahren:
- Temp
- Skripte
Laden Sie das PowerShell-Skript Export-M365DGMembers.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-M365DGMembers.ps1und legen Sie es in dieC:SkripteOrdner.
<#
.SYNOPSIS
Export-M365DGMembers.ps1
.DESCRIPTION
Export Microsoft 365 Distribution Group Members to CSV file with PowerShell.
.LINK
www.alitajran.com/export-microsoft-365-distribution-group-members-to-csv-powershell/
.NOTES
Written by: ALI TAJRAN
Website: www.alitajran.com
LinkedIn: linkedin.com/in/alitajran
.CHANGELOG
V1.00, 03/21/2024 - Initial version
V1.10, 04/20/2024 - Added MemberType property and report members on seperate row
#>
# CSV file export path
$Csvfile = "C:tempM365DGMembers.csv"
# Connect to Exchange Online PowerShell
Connect-ExchangeOnline
# Get all distribution groups
$Groups = Get-DistributionGroup -ResultSize Unlimited
# 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
# Loop through distribution groups and store custom objects in the array
foreach ($Group in $Groups) {
# 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
# Retrieve group properties
$Members = Get-DistributionGroupMember $Group.DistinguishedName -ResultSize Unlimited
$Owner = $Group.ManagedBy | ForEach-Object { (Get-Recipient $_ -ErrorAction SilentlyContinue).DisplayName }
$AcceptMessagesOnlyFromDisplayNames = $Group.AcceptMessagesOnlyFrom | ForEach-Object { (Get-Recipient $_).PrimarySmtpAddress }
$GrantSendOnBehalfToDisplayNames = $Group.GrantSendOnBehalfTo | ForEach-Object { (Get-User $_ -ErrorAction SilentlyContinue).DisplayName }
# Get SendAs permissions
$SendAsPermissions = Get-RecipientPermission -Identity $Group.PrimarySmtpAddress
$SendAsTrustees = $SendAsPermissions.Trustee
# Create custom objects for each member
foreach ($Member in $Members) {
$ReportLine = [PSCustomObject]@{
DisplayName = $Group.DisplayName
Description = $Group.Description
PrimarySmtpAddress = $Group.PrimarySmtpAddress
SecondarySmtpAddress = ($Group.EmailAddresses | Where-Object { $_ -clike "smtp*" } | ForEach-Object { $_ -replace "smtp:", "" }) -join ','
Alias = $Group.Alias
GroupType = $Group.GroupType
RecipientType = $Group.RecipientType
SyncedFromOnPremises = $Group.IsDirSynced
Member = $Member.DisplayName
MemberPrimarySmtpAddress = $Member.PrimarySmtpAddress
MemberType = $Member.RecipientType
Owners = $Owner -join ','
HiddenFromAddressLists = $Group.HiddenFromAddressListsEnabled
MemberJoinRestriction = $Group.MemberJoinRestriction
MemberDepartRestriction = $Group.MemberDepartRestriction
RequireSenderAuthenticationEnabled = $Group.RequireSenderAuthenticationEnabled
AcceptMessagesOnlyFrom = $AcceptMessagesOnlyFromDisplayNames -join ','
SendOnBehalf = $GrantSendOnBehalfToDisplayNames -join ','
SendAs = $SendAsTrustees -join ','
WhenCreated = $Group.WhenCreated
WhenChanged = $Group.WhenChanged
}
$Report.Add($ReportLine)
}
}
# Complete the progress bar
Write-Progress -Activity "Retrieving Group Members" -Completed
# Output the custom objects array, sort them, and display in a grid view
$Report | Sort-Object DisplayName | Out-GridView -Title "M365 Distribution Group Members"
# Export report to CSV file
$Report | Sort-Object DisplayName | Export-Csv -Path $Csvfile -NoTypeInformation -Encoding utf8- Zeile 22:Bearbeiten Sie den CSV-Dateipfad
3. Führen Sie das PowerShell-Skript „Microsoft 365-Verteilergruppenmitglieder exportieren“ aus
Rufen Sie alle Microsoft 365-Verteilergruppen, einschließlich ihrer Mitglieder und Besitzer, ab und exportieren Sie sie in eine CSV-Datei.
Führen Sie den folgenden Befehl aus, um das Skript Export-M365DGMembers.ps1 auszuführen.
c:scripts.Export-M365DGMembers.ps14. Öffnen Sie den Bericht „Mitglieder der Microsoft 365-Verteilergruppe“.
Das PowerShell-Skript Export-M365DGMembers.ps1 exportiert alle Mitglieder der Microsoft 365-Verteilergruppe in eine CSV-Datei.
Finden Sie die DateiM365DGMembers.csvim WegC:Temp.

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

Der Bericht zu Mitgliedern und Besitzern der Microsoft 365-Verteilergruppe sieht großartig aus!
Abschluss
Sie haben gelernt, wie Sie Microsoft 365-Verteilergruppenmitglieder mit PowerShell in CSV exportieren. Der Export im Admin Center liefert Ihnen nicht alle gewünschten Eigenschaften. Am besten verwenden Sie das PowerShell-Skript, da Sie es an Ihre Bedürfnisse anpassen können.
Lesen Sie auch:So migrieren Sie Verteilergruppen zu Microsoft 365
Hat Ihnen dieser Artikel gefallen? Möglicherweise gefällt Ihnen auch der Export von Entra ID-App-Registrierungen, Zertifikaten und Ablaufberichten für Geheimnisse. Vergessen Sie nicht, uns zu folgen und diesen Artikel zu teilen.














