Exportar grupo de distribución y miembros con PowerShell
Puede exportar la información del grupo de distribución desde el centro de administración de Microsoft 365, pero no muestra todos los detalles. Con PowerShell, es más rápido exportar datos detallados de grupos de distribución a un archivo CSV. En este artículo, aprenderá cómo exportar un grupo de distribución y miembros con PowerShell.
Conéctese a Exchange en línea
Para poder ejecutar comandos de PowerShell, debe conectarse a Exchange Online PowerShell. Abra Windows PowerShell como administrador, ejecute el cmdlet siguiente e inicie sesión con sus credenciales de administrador.
Connect-ExchangeOnlineVer la lista y los miembros del grupo de distribución
Mostraremos cómo mostrar información sobre grupos de distribución en la salida de PowerShell. Recuerda que toda la información que puedas mostrar en la consola de PowerShell también la podrás exportar a un archivo CSV.
Mostrar lista de grupos de distribución
Obtengamos una lista de todos los grupos de distribución (de seguridad) existentes con información. Para ver grupos de distribución existentes o grupos de seguridad habilitados para correo, use el cmdlet Get-DistributionGroup.
Get-DistributionGroup -ResultSize UnlimitedEl ejemplo de salida de PowerShell:
Name DisplayName GroupType PrimarySmtpAddress
---- ----------- --------- ------------------
Sales Employees Sales Employees Universal Sales.Employees@m365info.com
Sales UK Sales UK Universal SalesUK@m365info.com
Sales USA Sales USA mail list Universal SalesUSAnew@m365info.comMostrar miembros del grupo de distribución
Puede mostrar los miembros de todos los grupos de distribución existentes.
Consulte la siguiente sintaxis del comando PowerShell.
Get-DistributionGroupMember -ResultSize Unlimited "Distribution Group"Ejecute el siguiente ejemplo de comando de PowerShell.
Get-DistributionGroupMember -ResultSize Unlimited "SalesUK@m365info.com"La salida de PowerShell muestra la identidad de los miembros.
Name RecipientType
---- -------------
41377e9c-dc47-46c0-b4a5-1d5bbdcb5cc5 UserMailbox Mostrar detalles de los miembros del grupo de distribución
Para obtener información ampliada sobre los miembros de un grupo de distribución específico, debemos utilizar el cmdlet de PowerShell Get-DistributionGroupMember. Ordenaremos el resultado y mostraremos la siguiente información sobre los miembros DisplayName, Alias y Departamento.
Ejemplo de comando de PowerShell:
Get-DistributionGroupMember -ResultSize Unlimited "SalesUSA@m365info.com" | Sort -Property DisplayName | Select-Object DisplayName, Alias, DepartmentResultados de salida de PowerShell:
DisplayName Alias Department
----------- ----- ----------
Brenda Smith Brenda.Smith
David Kent David.Kent Sales Cuente el número de miembros del grupo de distribución.
También puede ver la cantidad de miembros que tiene un grupo de distribución específico.
Consulte la siguiente sintaxis del comando de PowerShell.
(Get-DistributionGroupMember -ResultSize Unlimited "Distribution Group").CountEjecute el siguiente ejemplo de comando de PowerShell.
(Get-DistributionGroupMember -ResultSize Unlimited "SalesUSA@m365info.com").Count
Mostrará la cantidad de miembros en la salida de PowerShell.
Obtener membresía en el grupo de distribución de un usuario específico
También puede averiguar cuántas membresías tiene un usuario específico.
- Escriba la Identidad del usuario en la primera línea.
- Ejecute el siguiente script de PowerShell
$User = "Brenda.Smith@m365info.com"
$UserDisplayName = (Get-User $User).Name
"The user " + $User + " is a member of the following Distribution Groups:"
foreach ($DistributionGroup in Get-DistributionGroup -ResultSize Unlimited) {
if ((Get-DistributionGroupMember $DistributionGroup.PrimarySmtpAddress | Select-Object -ExpandProperty Name) -contains $UserDisplayName) {
$DistributionGroup.PrimarySmtpAddress
}
}El resultado de salida de PowerShell muestra a qué grupos de distribución son miembros.
The User Brenda.Smith@m365info.com is a member of the following Distribution Groups:
SalesEmployees@m365info.com
SalesUSA@m365info.comEn nuestro ejemplo, el usuario Brenda es miembro de dos grupos de distribución.
Mostrar lista de grupos de distribución con dominio de correo electrónico específico
Ver una lista de grupos de distribución de un dominio específico. Esto es útil si tiene muchos grupos de distribución y desea limitarlos a un dominio específico.
Consulte la sintaxis del comando de PowerShell.
Get-DistributionGroup -ResultSize Unlimited -Filter {EmailAddresses -like "*Domain Name"} | ft -Property Name, Alias, EmailAddresses -AutosizeEn nuestro ejemplo, queremos mostrar una lista de grupos de distribución cuya dirección de correo electrónico incluye el nombre de dominio m365info.com
Ejecute el ejemplo del comando PowerShell.
Get-DistributionGroup -ResultSize Unlimited -Filter {EmailAddresses -like "*m365info.com*"} | ft -Property Name, Alias, EmailAddresses -AutosizeLa salida de PowerShell muestra el siguiente resultado.
Name Alias EmailAddresses
---- ----- --------------
Sales Employees Sales.Employees {SMTP:Sales.Employees@m365info.com, smtp:Sales.Employees@ms365info.onmicrosoft.com}
Sales UK SalesUK {SMTP:SalesUK03@m365info.com, smtp:SalesUK@ms365info.onmicrosoft.com}
Sales USA SalesUSA {SMTP:SalesUSAnew@m365info.com, smtp:SalesUSA@m365info.com, smtp:SalesUSA@ms365info.onmicrosoft.com}Mostrar grupos de distribución en un rango de fechas específico
Puede obtener una lista de grupos de distribución creados en una fecha, hora o rango de tiempo específico.
- Queremos agregar un usuario a todos los grupos de distribución nuevos creados en un rango de tiempo específico (últimas dos semanas)
- Queremos agregar un usuario a todos los grupos de distribución creados en un rango de tiempo específico (antes de las últimas dos semanas)
Para saber cuándo se creó un grupo de distribución específico, podemos consultar WhenCreated. Para encontrar el grupo de distribución que pertenece al rango de tiempo específico, como las últimas dos semanas o el tiempo anterior a las dos semanas actuales, necesitamos usar los operadores lógicos de PowerShell.
En nuestro ejemplo, creamos dos consultas de PowerShell que utilizarán los siguientes operadores -ge y -le y obtendremos la siguiente información:
- Obtenga una lista de grupos de distribución creados en las últimas 2 semanas. Para ello utilizamos el operador de PowerShell -ge (mayor o igual que).
- Obtenga una lista de grupos de distribución creados antes de las últimas 2 semanas. Para ello utilizamos el operador de PowerShell -le (Menor o igual a).
Para definir el rango de tiempo de dos semanas, usaremos los cmdlets de PowerShell Get-Date de la siguiente manera: (Get-Date).AddDays(-14).
Obtener grupos de distribución creados en las últimas 2 semanas
Obtenga una lista de grupos de distribución creados en los últimos 14 días.
Ejecute el siguiente ejemplo de PowerShell.
Get-DistributionGroup -ResultSize Unlimited -Filter "WhenCreated -ge '$((Get-Date).AddDays(-14))'" | Format-Table DisplayName, WhenCreatedVea el resultado de salida de PowerShell.
DisplayName WhenCreated
----------- -----------
Sales Employees 25/08/2023 23.07.36
Sales UK 07/09/2023 11.53.47
Sales USA mail list 07/09/2023 10.00.12Obtener grupos de distribución creados antes de las últimas 2 semanas
Obtenga una lista de grupos de distribución creados antes de los últimos 14 días.
Ejecute el siguiente ejemplo de comando de PowerShell.
Get-DistributionGroup -ResultSize Unlimited -Filter "WhenCreated -le '$((Get-Date).AddDays(-14))'" | Format-Table DisplayName, WhenCreatedEl resultado de salida de PowerShell muestra una lista de todos los grupos de distribución creados antes de las últimas dos semanas.
DisplayName WhenCreated
----------- -----------
Sales Employees 25/08/2023 23.07.36Mostrar todos los grupos de distribución administrados por un propietario específico
Obtenga una lista de todos los grupos de distribución administrados por un nombre específico. Vea solo los grupos de distribución cuyo propietario sea este nombre específico.
En nuestro ejemplo, mostrará todos los grupos de distribución cuyo propietario tenga la palabra Amanda.
- Escriba el nombre de Identidad entre los asteriscos (*)
- Ejecute el siguiente script de PowerShell
$users = Get-User -Identity *amanda*
foreach ($user in $users) {
$userPrincipalName = $user.UserPrincipalName
$displayName = $user.DisplayName
Get-DistributionGroup -ResultSize Unlimited | Where-Object { $_.ManagedBy -like "*$($user.Identity)*" } |
Select-Object DisplayName, PrimarySmtpAddress,
@{Name = 'UserPrincipalName'; Expression = { $userPrincipalName } },
@{Name = 'UserDisplayName'; Expression = { $displayName } }
}La salida de PowerShell muestra todos los grupos de distribución que pertenecen a Amanda.
DisplayName PrimarySmtpAddress UserPrincipalName UserDisplayName
----------- ------------------ ----------------- ---------------
Sales Germany SalesGermany@m365info.com Amanda.Hansen@m365info.com Amanda Hansen
Sales Germany SalesGermany1@m365info.com Amanda.Hansen@m365info.com Amanda Hansen
Sales France SalesFrance@m365info.com Amanda.Morgan@m365info.com Amanda MorganMostrar todos los propietarios de un único grupo de distribución
Puede mostrar qué propietarios tiene un grupo de distribución específico.
Ejecute el siguiente comando de PowerShell para mostrar los propietarios de un grupo de distribución específico.
$group = Get-DistributionGroup -ResultSize Unlimited -Filter "PrimarySmtpAddress -eq 'SalesGermany@m365info.com'"
$managedBy = $group.ManagedBy | Get-User
$managedBy | Select-Object DisplayName, IdentityLa salida de PowerShell muestra el ID de objeto de todos los propietarios.
DisplayName Identity
----------- --------
Brenda Smith 0f38d53f-cbe0-4844-86e9-1032a45ba31b
George Wilson 67962421-00e7-448b-b382-83b7b434e41c
Amanda Hansen 41377e9c-dc47-46c0-b4a5-1d5bbdcb5cc5
Ken Walker 12eefbb2-e5f4-4eec-bd18-df7ca2f1ee6bMostrar todos los grupos de distribución con moderador
No todos los grupos de distribución tienen un moderador porque no está configurado de forma predeterminada. Un moderador puede aprobar o rechazar los mensajes enviados al grupo de distribución.
- Mostrar una lista de todos los grupos de distribución existentes con y sin moderador
Ejecute el siguiente ejemplo de comando de PowerShell:
Get-DistributionGroup -ResultSize Unlimited | ft DisplayName, ModeratedByResultado de salida de PowerShell:
DisplayName ModeratedBy
----------- -----------
Sales Employees {}
Sales UK {41377e9c-dc47-46c0-b4a5-1d5bbdcb5cc5, eec2668a-0773-4947-93ba-2223f6acfe55}
Sales USA mail list {} - Mostrar una lista de todos los grupos de distribución que tienen un moderador
Ejecute el siguiente ejemplo de comando de PowerShell.
Get-DistributionGroup -ResultSize Unlimited -Filter 'ModeratedBy -ne $null' | ft DisplayName, ManagedByLa salida de PowerShell muestra el siguiente resultado.
DisplayName ManagedBy
----------- ---------
Sales UK {41377e9c-dc47-46c0-b4a5-1d5bbdcb5cc5, eec2668a-0773-4947-93ba-2223f6acfe55}Mostrar todos los grupos de distribución que están sincronizados desde Active Directory local
Ejecute el siguiente ejemplo de comando de PowerShell.
Get-DistributionGroup -ResultSize Unlimited | Where-Object { $_.IsDirSynced -eq $true } | ft DisplayName, IsDirSyncedMostrar la configuración de administración de entrega del grupo de distribución
El término gestión de entrega está relacionado con los usuarios que pueden enviar mensajes al grupo de distribución. Hay dos tipos de remitentes:
- Remitentes internos (destinatarios de la organización), que se describen como destinatarios autenticados.
- Remitentes externos (destinatarios que no pertenecen a la organización), que se describen como destinatarios no autenticados.
Cuando crea un nuevo grupo de distribución, la opción Permitir solo mensajes de personas dentro de mi organización está habilitada. El parámetro que define esta opción es -RequireSenderAuthenticationEnabled.
De forma predeterminada, el valor del parámetro -RequireSenderAuthenticationEnabled está establecido en $True. Sólo las personas dentro de su organización pueden enviar mensajes al grupo de distribución.
También puede permitir que personas ajenas a la organización realicen envíos al grupo de distribución. El valor del parámetro -RequireSenderAuthenticationEnabled debe establecerse como $False.
Mostraremos una lista de todos los grupos de distribución que han habilitado o deshabilitado remitentes externos.
Ejecute el ejemplo del comando PowerShell.
Get-DistributionGroup -ResultSize Unlimited | ft DisplayName, RequireSenderAuthenticationEnabledEl resultado de salida de PowerShell.
DisplayName RequireSenderAuthenticationEnabled
----------- ----------------------------------
Mail security False
Sales Employees False
Sales France True
Sales Germany True
Sales Norway True
Sales Spain True
Sales Sweden True
Sales UK False
Sales USA mail list FalseMostrar grupos de distribución que aceptan correo electrónico de destinatarios externos
Vea solo una lista de grupos de distribución que aceptan destinatarios externos para enviar correos electrónicos.
Ejecute el ejemplo del comando PowerShell.
Get-DistributionGroup -ResultSize Unlimited | Where-Object { $_.RequireSenderAuthenticationEnabled -eq $True } | ft DisplayName, RequireSenderAuthenticationEnabledVea el resultado de salida de PowerShell a continuación.
DisplayName RequireSenderAuthenticationEnabled
----------- ----------------------------------
Sales UK TrueMostrar grupos de distribución que no aceptan correo electrónico de destinatarios externos
Solo mostraremos una lista de grupos de distribución que no permiten que personas ajenas a la organización (destinatarios externos) envíen correos electrónicos a este grupo.
Ejecute el siguiente comando de PowerShell:
Get-DistributionGroup -ResultSize Unlimited | Where-Object { $_.RequireSenderAuthenticationEnabled -eq $False } | ft DisplayName, RequireSenderAuthenticationEnabledEl resultado de salida de PowerShell:
DisplayName RequireSenderAuthenticationEnabled
----------- ----------------------------------
Sales Employees False
Sales USA mail list FalseExportar lista de grupos de distribución, incluidos los miembros, a CSV
Le mostraremos cómo exportar toda la información que se muestra como resultados de salida de PowerShell. Puede exportar la salida de PowerShell en los siguientes formatos de archivo: texto, CSV, HTML y XML.
Para exportar la salida del comando PowerShell a un formato de archivo CSV (valores separados por comas), podemos agregar parámetros adicionales como:
- -NoTypeInformation: Evita que PowerShell agregue información innecesaria al archivo CSV
- -Codificación UTF8: Puede exportar todos los caracteres que no estén en inglés, como el chino o el árabe.
Debe agregar una ruta para exportar los datos, lo que significa que debe crear una carpeta específica (temp) y guardarla en la unidad (C:). Ningún comando de PowerShell creará una carpeta específica especificada en la ruta.
Una vez configurado, le mostraremos cómo exportar información de la lista de grupos de distribución a varios tipos de archivos.
- Exportar información a un archivo CSV. Ejemplo de comando de PowerShell:
Get-DistributionGroup -ResultSize Unlimited | Export-CSV "C:\temp\DistributionGroups.csv" -NoTypeInformation -Encoding UTF8- Exportar información a un archivo de texto Ejemplo de comando de PowerShell:
Get-DistributionGroup -ResultSize Unlimited | Out-File "C:\temp\DistributionGroups.txt"- Exportar información a un archivo HTML Ejemplo de comando de PowerShell:
Get-DistributionGroup -ResultSize Unlimited | ConvertTo-Html | Out-File "C:\temp\DistributionGroups.html"Exportar la lista de grupos de distribución únicos, incluidos los miembros, a CSV
Puede exportar información de todos los miembros de un grupo de distribución específico.
En nuestro ejemplo, queremos exportar todos los miembros del grupo de distribución Sales UK.
Get-DistributionGroupMember -ResultSize Unlimited -Identity "Sales UK" | Select-Object DisplayName, PrimarySmtpAddress, ExternalEmailAddress, Alias | Export-Csv "C:\temp\DistributionGroupMembers.csv" -NoTypeInformation -Encoding UTF8Exportará el archivo CSV a la carpeta C:\temp. Abra el archivo CSV con Microsoft Excel para ver los resultados.
La siguiente imagen muestra un ejemplo de un archivo CSV con todos los miembros del grupo (incluidos los contactos) del grupo de distribución Sales UK.
Exportar lista de todos los grupos de distribución, incluidos los miembros, a CSV
Puede exportar una lista de todos los miembros del grupo de distribución a un único archivo CSV.
Ejecute el script de PowerShell.
$Groups = Get-DistributionGroup -ResultSize Unlimited
# Initialize an array to store the data
$data = @()
foreach ($Group in $Groups) {
$Members = Get-DistributionGroupMember -ResultSize Unlimited -Identity $Group.PrimarySmtpAddress
foreach ($Member in $Members) {
if ($Member.PrimarySmtpAddress) {
$Recipient = Get-Recipient -Identity $Member.PrimarySmtpAddress
$data += [PSCustomObject]@{
GroupName = $Group.DisplayName
GroupPrimarySmtpAddress = $Group.PrimarySmtpAddress
MemberDisplayName = $Member.DisplayName
MemberPrimarySmtpAddress = $Member.PrimarySmtpAddress
RecipientType = $Recipient.RecipientType
MemberAlias = $Recipient.Alias
}
} else {
$data += [PSCustomObject]@{
GroupName = $Group.DisplayName
GroupPrimarySmtpAddress = $Group.PrimarySmtpAddress
MemberDisplayName = $Member.DisplayName
MemberPrimarySmtpAddress = "-"
RecipientType = "-"
MemberAlias = "-"
}
}
}
}
# Export the data to a CSV file
$data | Export-Csv -Path "C:\temp\AllDistributionGroupMembers.csv" -NoTypeInformation -Encoding UTF8Exportará el archivo CSV a la carpeta C:\temp. Abra el archivo CSV con Microsoft Excel para ver los resultados.
El resultado final muestra una lista de todos los grupos de distribución, incluidos sus miembros y contactos en su organización.
Leer más: Exportar el buzón de Microsoft 365 a un archivo PST »
Conclusión
Aprendió a exportar grupos y miembros de distribución con PowerShell. Obtenga una lista detallada de todos los grupos de distribución, incluidos sus miembros, y expórtela a un archivo CSV. Con PowerShell, puede personalizar y crear su propio informe detallado sobre todos los grupos de distribución.
Disfrutaste este artículo? También te puede interesar Exportar el informe de tamaño del buzón de Microsoft 365 con PowerShell. No olvides seguirnos y compartir este artículo.



