Cómo identificar listas de distribución inactivas en Exchange y Microsoft 365

Cómo encontrar y eliminar grupos de distribución no utilizados en Exchange (local y en línea)

Encontrar grupos de distribución sin usar puede ser un verdadero dolor de cabeza, sobre todo porque no existe un atributo de «último uso» claro, como ocurre con los inicios de sesión de usuario. Además, algunos de estos grupos se olvidan, pero siguen presentes, saturando la GAL o simplemente ocupando espacio. Por lo tanto, se trata principalmente de usar PowerShell, ya sea en tu servidor Exchange local o para Exchange Online en Microsoft 365. La idea, sobre todo si intentas organizar, es identificar grupos sin miembros (probablemente abandonados) o que no han recibido correos electrónicos en mucho tiempo; es decir, que definitivamente ya no se usan. Porque, claro, Exchange no registra directamente la fecha del último correo electrónico, así que el método es un poco complicado, pero bastante efectivo.

Listar grupos de distribución vacíos en Exchange con PowerShell

Si un grupo de distribución no tiene miembros, probablemente sea un lastre. En una configuración funcionó, en otra… no tanto. Aun así, este es un buen primer paso para identificar grupos obviamente sin uso. Por qué es útil: Muestra directamente qué grupos están vacíos; no necesariamente inactivos, pero es un buen indicador de que probablemente ya no se necesiten. Al ejecutar esto, se espera una lista de grupos sin miembros, lo que facilita la limpieza. A veces, estos grupos son restos de proyectos antiguos o reestructuraciones de equipos. Al hacerlo, asegúrese de estar conectado a su entorno de Exchange mediante PowerShell. Para Exchange Server, esto significa abrir un Shell de administración de Exchange o conectarse de forma remota. Para Exchange Online, necesitará el módulo PowerShell de Exchange Online y conectarse con `Connect-ExchangeOnline`.Este es el comando para comenzar: powershell Get-DistributionGroup –ResultSize Unlimited | Where-Object { (Get-DistributionGroupMember –Identity $_. Name –ResultSize Unlimited).Count -eq 0 } | Select-Object Name, PrimarySmtpAddress. La parte `Get-DistributionGroupMember` extrae los miembros. Si es cero, es posible que ese grupo ya no sea necesario o que esté mal configurado. Este comando puede ser algo lento si tiene muchos grupos, pero vale la pena. Para grupos de distribución dinámicos, puede hacer algo similar con: powershell Get-DynamicDistributionGroup -ResultSize Unlimited | Where-Object { (Get-Recipient -RecipientPreviewFilter (Get-DynamicDistributionGroup -Identity $_. Identity).RecipientFilter).Count -eq 0 } | Select-Object Name, PrimarySmtpAddress. No es perfecto, pero funciona tanto para grupos estáticos como dinámicos.—

Cómo encontrar grupos de distribución inactivos en Exchange Server

Aquí es donde la cosa se complica. Exchange no registra la actividad del grupo a menos que se consulte explícitamente el seguimiento de mensajes. Pero esto es bastante esclarecedor, ya que si el grupo no recibe ningún correo electrónico durante un tiempo, podría estar inactivo. Por qué es útil: Permite encontrar grupos que no se usan activamente (según el tráfico de correo electrónico) en lugar de solo la membresía. La desventaja es que requiere un análisis de registros. Esto es lo que suele funcionar: Usar `Get-MessageTrackingLog`.Puedes analizar los registros en busca de correos electrónicos enviados a un grupo durante los últimos 90 días aproximadamente. Por ejemplo: powershell Get-MessageTrackingLog -Start (Get-Date).AddDays(-90) -ResultSize unlimited -Recipients «» | Medir-Objeto Reemplazar `` con la dirección real. Si desea saber cuántos correos electrónicos se enviaron a varios grupos, puede exportar el informe: powershell Get-MessageTrackingLog -Start (Get-Date).AddDays(-90) -EventId Expand -ResultSize Unlimited | Sort-Object RelatedRecipientAddress | Group-Object RelatedRecipientAddress | Select-Object Name, Count | Export-CSV «active-dls.csv» -NoType. Luego, compare con todos sus grupos (quizás mediante los archivos CSV) para ver cuáles no han tenido actividad de correo. Además, puede aumentar la retención de registros si estos se borran demasiado rápido: powershell Set-TransportService -Identity-MessageTrackingLogMaxAge 180.00:00:00 Nota al margen: cuantos más servidores tengan una función de transporte, más necesitará ejecutar estos comandos individualmente.—

Identificar listas de distribución inactivas en Microsoft 365 (Exchange Online)

La nube es un poco diferente. En lugar de registros de mensajes, se utiliza el seguimiento de mensajes en el Centro de administración de Exchange o PowerShell. El problema es que el seguimiento de mensajes nativo solo cubre 10 días, lo cual no es mucho para evaluaciones inactivas. Por qué es útil: Permite ver si un grupo ha recibido correos electrónicos recientemente, lo que indica actividad en el último mes aproximadamente. Primero, conecte su sesión de PowerShell: powershell Connect-ExchangeOnline Luego, para verificar la actividad del correo electrónico, puede iniciar una búsqueda histórica: powershell foreach ($group in Get-DistributionGroup) { Start-HistoricalSearch -ReportTitle $group. PrimarySmtpAddress ` -StartDate 04/20/2023 -EndDate 06/20/2023 ` -ReportType MessageTrace ` -RecipientAddress $group. PrimarySmtpAddress ` -NotifyAddress [email protected] } Nota: este comando tiene un límite de 250 búsquedas cada 24 horas, por lo que es más práctico si lo ejecuta para unos pocos grupos a la vez o lo programa de manera inteligente. Una vez finalizado, revise los resultados: powershell Get-HistoricalSearch «Global Admin DL».Si no hay informes o el recuento de «Filas» es cero, probablemente significa que nadie ha enviado correos electrónicos al grupo en aproximadamente los últimos 90 días. Si parece que no se usa, puede desactivarlo o eliminarlo. También puede optar por cambiar a Grupos de Microsoft 365; son más modernos y tienen información de actividad integrada.—

Resumen

  • Compruebe si los grupos están vacíos con `Get-DistributionGroup` + `Get-DistributionGroupMember`.
  • Escanee los registros de correo electrónico para ver si los grupos aún reciben mensajes, especialmente en Exchange Server.
  • Utilice el seguimiento de mensajes o búsquedas históricas en Microsoft 365 para verificar la actividad.
  • No olvide exportar y comparar listas, especialmente si administra entornos grandes.
  • La desactivación o eliminación (a través de `Remove-DistributionGroup`) debería ser el último paso después de confirmar la inactividad.

Resumen

Deshacerse de grupos de Exchange sin usar requiere algo de esfuerzo, pero si usas estos métodos, es mucho más fácil detectar grupos superfluos. En algunas configuraciones, podrías encontrar grupos que permanecen sin miembros ni correos electrónicos durante meses; es obvio que ya no son necesarios. Ten cuidado antes de eliminarlos, especialmente con grupos dinámicos o con subsistemas que dependen de ellos. Siempre revisa bien. Con suerte, esto te ahorrará algunas horas de búsqueda. Recuerda: haz una copia de seguridad o exporta tus listas primero, por si acaso.