Hay muchos grupos de distribución y nos gusta reunir a todos los miembros y propietarios. Podemos revisar los grupos en el centro de administración de Microsoft 365 individualmente, pero eso lleva mucho tiempo. Entonces, automaticemos la tarea y exportemos un informe con todos los miembros, propietarios y más información. En este artículo, aprenderá cómo exportar de forma masiva los miembros del grupo de distribución de Microsoft 365 a un archivo CSV con un script de PowerShell.
Buscar grupos de distribución de Microsoft 365
Para encontrar todos los grupos de distribución en Microsoft 365, siga estos pasos:
- Inicie sesión enCentro de administración de Microsoft Exchange
- Hacer clicDestinatarios > Grupos
- Haga clic en eltipo de grupopara enumerar los grupos de distribución

Veamos el siguiente paso sobre cómo exportar miembros del grupo de distribución de Microsoft 365 con PowerShell.
Export-M365DGMembers.ps1 PowerShell obtendrá todos los grupos de distribución de Microsoft 365, incluidos sus miembros, y los exportará a un archivo CSV.
Para cada grupo de distribución de Microsoft 365, recopila la siguiente información:
- Nombre para mostrar
- Descripción
- Dirección Smtp Primaria
- Dirección Smtp Secundaria
- Alias
- Tipo de grupo
- Tipo de destinatario
- SincronizadoDesdeOnPremises
- Miembro
- MiembroPrimarioSmtpDirección
- Tipo de miembro
- Propietarios
- Oculto de listas de direcciones
- MiembroJoinRestriction
- MiembroSalidaRestricción
- RequireSenderAuthenticationEnabled
- AceptarMensajesSóloDesde
- SendonNombre
- enviar
- Cuando se creó
- Cuando se cambia
Nota:¿Quiere obtener una lista de todos los miembros del grupo de distribución en Exchange Server? Lea el artículo Exportar miembros del grupo de distribución a CSV con PowerShell.
1. Instale el módulo PowerShell de Exchange Online
Antes de que podamos continuar y obtener los miembros y propietarios de Microsoft 365 de todos los grupos de distribución, debemos instalar el módulo Exchange Online PowerShell.
Inicie Windows PowerShell como administrador y ejecute los siguientes comandos.
Install-Module -Name ExchangeOnlineManagement -Force2. Prepare el script de PowerShell para exportar los miembros del grupo de distribución de Microsoft 365.
Cree dos carpetas en el(DO:)conducir:
- Temperatura
- Guiones
Descargue el script de PowerShell Export-M365DGMembers.ps1 y colóquelo enC:guionescarpeta. El script exportará el archivo CSV alC:temperaturacarpeta.
Asegúrese de que el archivo esté desbloqueado para evitar errores al ejecutar el script. Lea más en el artículo Error sin firma digital al ejecutar el script de PowerShell.
Otra opción es copiar y pegar el código siguiente en el Bloc de notas. Dale el nombreExportar-M365DGMembers.ps1y colóquelo en elC:guionescarpeta.
<#
.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- Línea 22:Editar la ruta del archivo CSV
3. Ejecute el script de PowerShell Exportar miembros del grupo de distribución de Microsoft 365.
Obtenga todos los grupos de distribución de Microsoft 365, incluidos sus miembros y propietarios, y expórtelos a un archivo CSV.
Ejecute el siguiente comando para ejecutar el script Export-M365DGMembers.ps1.
c:scripts.Export-M365DGMembers.ps14. Abra el informe de miembros del grupo de distribución de Microsoft 365.
El script de PowerShell Export-M365DGMembers.ps1 exporta todos los miembros del grupo de distribución de Microsoft 365 a un archivo CSV.
Encuentra el archivoM365DGMembers.csven el caminoC:temperatura.

Abra el archivo CSV con su aplicación favorita. En nuestro ejemplo, es Microsoft Excel.

¡El informe de propietarios y miembros del grupo de distribución de Microsoft 365 se ve genial!
Conclusión
Aprendió a exportar miembros del grupo de distribución de Microsoft 365 a CSV con PowerShell. La exportación en el centro de administración no le brinda todas las propiedades que desea. Es mejor utilizar el script de PowerShell porque puede personalizarlo según sus necesidades.
Lea también:Cómo migrar grupos de distribución a Microsoft 365
¿Disfrutaste este artículo? También te puede interesar Exportar el informe de vencimiento de secretos y certificados de registros de la aplicación Entra ID. No olvides seguirnos y compartir este artículo.











