/
/

Cómo obtener informes de grupos de Microsoft 365 con PowerShell

por Team Ninja
How to Get Microsoft 365 Group Reports Using PowerShell blog banner image

Resumen instantáneo

Este post ofrece una lista completa de comandos CMD básicos y una inmersión profunda en los comandos de Windows, con más de 70 comandos cmd esenciales tanto para principiantes como para usuarios avanzados. Explica comandos prácticos del símbolo del sistema para la gestión de archivos, la navegación por directorios, la solución de problemas de red, las operaciones de disco y la automatización con ejemplos reales para mejorar la productividad. Tanto si estás aprendiendo los comandos básicos de cmd como si ya dominas las herramientas avanzadas de la CLI de Windows, esta guía te ayudará a utilizar el Símbolo del sistema de forma más eficaz.

Puntos clave

  • Usa Microsoft Graph PowerShell para exportar los nombres, tipos, visibilidad y fechas de creación de los grupos de Microsoft 365.
  • Combina los datos de Exchange Online PowerShell y de Graph para informar con precisión sobre la propiedad y los miembros de los grupos.
  • Aprovecha la API de Microsoft Graph Reports para seguir la actividad de los grupos e identificar los inactivos o sin propietario en periodos de 7, 30 o 90 días.
  • Automatiza los informes de Microsoft 365 con autenticación de solo aplicación, tareas programadas de PowerShell y exportaciones a CSV/JSON para un seguimiento constante.
  • Estandariza los informes de Microsoft 365 en varios tenants con bucles de conexión por script, registros con marca de tiempo e informes unificados para todas las organizaciones.

Los informes de grupos de Microsoft 365 ayudan a los administradores a controlar la propiedad, los miembros, la visibilidad y el uso de los grupos en Teams, SharePoint, Planner y Outlook.

Los métodos de informes tradicionales no ofrecen la automatización ni la profundidad que necesitan los administradores actuales. Por eso cada vez más organizaciones recurren a herramientas como Graph PowerShell y los endpoints de Graph Reports para generar sus informes.

Estas plataformas automatizan tareas repetitivas, como la recopilación de datos de miembros y, sobre todo, aportan conjuntos de datos mucho más completos.

En esta guía te mostramos cómo automatizar los informes de grupos de Microsoft 365 con PowerShell y Graph Reports.

Automatizar los informes de grupos de Microsoft 365 con PowerShell

PowerShell y Microsoft Graph son las dos herramientas imprescindibles para crear un sistema de informes de grupos de Microsoft 365 escalable y seguro.

📌Requisitos previos

  • Los módulos Microsoft Graph PowerShell SDK y Exchange Online
  • Un registro de aplicación de Azure configurado con los ámbitos de API Reports.Read.All y Group.Read.All
  • Credenciales de solo aplicación o delegadas, almacenadas de forma segura en un Key Vault o un archivo JSON cifrado
  • Permisos de administrador para acceder a los informes del tenant de Microsoft 365 y a Exchange Online

Método 1: realizar un inventario completo de grupos con Microsoft Graph PowerShell

📌Caso de uso: este método establece una conexión segura con Microsoft Graph, lo que te permitirá consultar tus datos de Microsoft 365. Es ideal para hacer un inventario completo de todos los grupos de tu tenant, incluidos los grupos dinámicos y los habilitados para Teams.

A. Instala e importa los módulos

Install-Module Microsoft.Graph -Scope CurrentUser

Import-Module Microsoft.Graph

Connect-MgGraph -Scopes "Group.Read.All","Reports.Read.All"

Así se instala el SDK de forma segura y se conecta con los permisos necesarios.

B. Usa Get-MgGroup para inventariar todos los grupos de Microsoft 365

Get-MgGroup -All | Select DisplayName,GroupTypes,Visibility,CreatedDateTime |

Export-Csv "C:\Reports\GroupInventory.csv" -NoTypeInformation

💡Consejo: filtra los resultados por tipo de grupo o convención de nombres para aislar los grupos dinámicos o los habilitados para Teams.

Método 2: obtener los miembros y propietarios con Exchange Online

📌Caso de uso: este método te permite extraer los datos de miembros y propietarios directamente desde Exchange Online. Resulta especialmente útil para los administradores que gestionan grupos de seguridad habilitados para correo o listas de distribución de Microsoft 365.

A. Conéctate a Exchange Online:

Connect-ExchangeOnline -UserPrincipalName [email protected]

Get-UnifiedGroup | Select DisplayName,PrimarySmtpAddress,AccessType |

Export-Csv "C:\Reports\UnifiedGroups.csv" -NoTypeInformation

B. Lista los miembros o propietarios del grupo:

Get-UnifiedGroupLinks -Identity "<GroupName>" -LinkType Members |

Select Name,PrimarySmtpAddress

Exporta los resultados para revisarlos o documentar auditorías.

Método 3: analizar la actividad de los grupos con la API de Microsoft Graph Reports

📌Caso de uso: este método te permite analizar la actividad de los grupos y obtener información sobre su ciclo de vida.

A. Llama a la API de Graph Reports para consultar la actividad de los grupos

$uri = "https://graph.microsoft.com/v1.0/reports/getOffice365GroupsActivityDetail(period='D30')"

Invoke-MgGraphRequest -Method GET -Uri $uri |

ConvertFrom-Csv | Export-Csv "C:\Reports\GroupActivity_D30.csv" -NoTypeInformation

Compara los recuentos de actividad con los datos de miembros para identificar qué grupos están inactivos, infrautilizados o sin propietario.

Método 4: automatizar las exportaciones y su programación

📌Caso de uso: este método te permite generar informes de grupos de forma automática para cumplimiento y para los informes de dirección.

  1. Protege las credenciales de tu aplicación guardándolas en un archivo JSON cifrado.
  2. Usa una tarea programada de PowerShell o un runbook de Azure Automation para ejecutarlo en el cloud:

$timestamp = Get-Date -Format "yyyyMMdd_HHmm"
Get-MgGroup -All | Export-Csv "C:\Reports\Groups_$timestamp.csv" -NoTypeInformation

  1. Activa el registro de cada ejecución y asegúrate de que incluya datos clave, como la marca de tiempo, el nombre del tenant, el número de registros y si la ejecución fue correcta o falló.
  2. Si quieres, puedes llevar los archivos CSV exportados a Power BI o a un paquete de informes de cumplimiento.

Resumen de buenas prácticas para obtener informes de grupos de Microsoft 365 con PowerShell y Graph Reports

PrácticaObjetivoValor que aporta
Cmdlets de Graph para el inventarioGarantizan la alineación con las API modernas de Microsoft Graph para obtener datos de grupos y del directorioOfrecen resultados de inventario precisos, fiables y totalmente compatibles
Exchange Online para los detalles de miembrosRefuerza la gobernanza al dar visibilidad sobre la propiedad de los grupos y los permisos de accesoPermite a los administradores confirmar quién es propietario de cada grupo y quién tiene acceso a qué
API de Graph Reports para analizar la actividadAporta visibilidad del ciclo de vida de los grupos al seguir los patrones de uso y participaciónFacilita la identificación de grupos inactivos, redundantes o sin propietario
Autenticación de solo aplicaciónMejora la seguridad al eliminar la necesidad de inicios de sesión interactivosOfrece una autenticación segura basada en tokens que protege el acceso administrativo
Exportaciones programadasEstandariza la recopilación de datos mediante la automatizaciónGarantiza informes repetibles y evidencias continuas para las auditorías de cumplimiento

Validación y resolución de problemas habituales

Si tu script devuelve errores o genera datos incompletos, usa el checklist siguiente para detectar y resolver los problemas más habituales.

  • Resultados vacíos: comprueba la configuración de registro del tenant y verifica que los permisos de la API de Graph estén asignados correctamente.
  • Acceso denegado: asegúrate de que se haya concedido explícitamente el consentimiento de administrador para todos los ámbitos de API necesarios en el registro de aplicación de Azure.
  • Límites de velocidad: aplica lógica de retardo o de reintento en tenants grandes para espaciar las solicitudes y no superar los límites de velocidad de la API de Graph.
  • Errores de script: envuelve los bloques de consulta en Try/Catch para gestionar las excepciones correctamente y registrar el error para revisarlo más tarde.
  • Tokens caducados: configura alertas para vigilar la caducidad de los tokens y rota los secretos de la aplicación con regularidad. Así te aseguras de que tus informes automatizados sigan ejecutándose.

Punto de automatización para los informes de grupos de Microsoft 365

La automatización puede marcar la diferencia para los MSP. Por ejemplo, una tarea diaria programada que se conecte a Microsoft Graph mediante autenticación de solo aplicación puede ayudarte a:

  • Obtener listas de grupos y métricas de actividad de varios tenants de clientes.
  • Unificar los datos en un único informe CSV, con marcas de tiempo incluidas.
  • Enviar los informes por correo automáticamente a los administradores designados.

Este enfoque reduce el trabajo manual de tu equipo y le permite centrarse en tareas más importantes.

Simplifica los informes de grupos de Microsoft 365 con NinjaOne

NinjaOne hace que los informes de grupos de Microsoft 365 sean muy sencillos. Cuenta con un potente motor de scripting que te permite automatizar despliegues de PowerShell en los entornos de tus clientes.

Con el almacenamiento seguro de credenciales, puedes crear scripts que generen información útil, produzcan informes CSV automáticamente y los adjunten directamente a la documentación del cliente sin comprometer la seguridad.

Empieza tu prueba gratuita del software de gestión de endpoints n.º 1 en G2

Sin tarjeta de crédito. Acceso completo a todas las funcionalidades.

Genera informes de grupos de Microsoft 365 más inteligentes con PowerShell

Los informes modernos de PowerShell para los grupos de Microsoft 365 se apoyan en cmdlets y API basados en Graph, lo que aporta un nivel de precisión y automatización que los métodos tradicionales no pueden igualar.

Al combinar los datos de inventario, miembros y actividad en informes unificados, ganas una visibilidad clave sobre cada tenant de cliente o unidad de negocio que gestionas. Y lo más importante: así tu proceso de generación de informes se mantiene escalable y preparado para el futuro.

Temas relacionados:

FAQs

La frecuencia de tus informes de grupos de Microsoft 365 dependerá de los ciclos de auditoría y las revisiones de ciclo de vida de tu MSP. Aun así, la mayoría de los equipos de seguridad revisan los accesos o la actividad cada semana para detectar grupos inactivos o sin propietario.

Sí. Puedes usar herramientas como NinjaOne o Azure Lighthouse para generar informes de grupos de Microsoft 365 en varios tenants. El inventario de grupos, la propiedad y los datos de actividad de cada tenant pueden exportarse en formato CSV o JSON.

Para seguir la ejecución de tu script de informes, puedes integrar funciones básicas de registro y alertas. De esta forma, guardará marcas de tiempo, nombres de tenants y mensajes de error en un archivo de registro.

Puedes importar los datos de grupos que has recopilado en Power BI, Excel o el panel de informes que prefieras. Así podrás seguir las tendencias de actividad, miembros y ciclo de vida de los grupos.

Quizá también te interese…

¿Listo para simplificar los aspectos más complejos de las TI?