Obtener miembros de grupo en Microsoft 365 con PowerShell Graph – Guía paso a paso
En esta guía aprenderás a obtener miembros de grupo en Microsoft 365 usando PowerShell y Microsoft Graph, y a exportarlos a CSV para auditorías y reportes.
Introducción
Si administras Microsoft 365, tarde o temprano necesitarás listar los miembros de un grupo (grupos de Microsoft 365, seguridad o equipos de Microsoft Teams). Usar PowerShell con Microsoft Graph te permite automatizar el proceso y mantener reportes consistentes, repetibles y fáciles de integrar en tu flujo de IT.
Resumen: conecta Microsoft Graph, usa
Get-MgGroupMemberpara obtener los miembros del grupo en Microsoft 365, resuelve solo usuarios conGet-MgUsery exporta a CSV conExport-Csv.
Requisitos previos
- PowerShell 7.x o Windows PowerShell 5.1.
- Instalar el módulo Microsoft.Graph:
Install-Module Microsoft.Graph -Scope CurrentUser - Iniciar sesión con permisos mínimos
User.Read.AllyGroup.Read.All:Connect-MgGraph -Scopes "User.Read.All","Group.Read.All" - Contar con el ObjectId del grupo (GroupId). Desde Entra ID → Grupos o con:
Get-MgGroup -Filter "displayName eq 'NOMBRE_DEL_GRUPO'"
Cómo usar PowerShell y Graph para obtener miembros de grupo en Microsoft 365
El flujo general es:
- Conectarte a Graph con los scopes adecuados.
- Usar
Get-MgGroupMemberpara traer todos los miembros asociados al GroupId. - Resolver y filtrar solo objetos
UserconGet-MgUser. - Proyectar los campos que necesitas y exportar a CSV.
Script completo: obtener miembros de grupo en Microsoft 365 con PowerShell Graph
# Define el ID del grupo
$GroupId = "d8da40dd-af8d-h38fh4f0-8a48-9ea15dddj49g85h6f"
# Inicializa lista
$usuarios = @()
# Obtiene miembros del grupo (IDs)
$miembros = Get-MgGroupMember -GroupId $GroupId -All
# Recorre cada miembro y obtiene su información solo si es usuario
foreach ($miembro in $miembros) {
# Obtiene el tipo real del objeto (puede ser user, group, etc.)
$user = Get-MgUser -UserId $miembro.Id -ErrorAction SilentlyContinue
if ($user) {
$usuarios += [PSCustomObject]@{
Nombre = $user.DisplayName
Correo = $user.UserPrincipalName
Id = $user.Id
Cargo = $user.JobTitle
Departamento = $user.Department
}
}
}
# Exporta a CSV (ajusta la ruta)
$usuarios | Export-Csv -Path "C:\Temp\miembros_$(get-date -f yyyy-MM-dd-hh-mm).csv" -NoTypeInformation -Encoding UTF8
Write-Host "Exportados $($usuarios.Count) usuarios a CSV." -ForegroundColor GreenSugerencia: usa rutas relativas o una carpeta de reportes específica para compartir resultados con tu equipo.
Explicación rápida de los cmdlets
- Get-MgGroupMember: extrae miembros del grupo en Microsoft 365 (usuarios, grupos, etc.).
- Get-MgUser: consulta atributos solo de objetos tipo
User. - [PSCustomObject]: arma un objeto plano con las columnas que exportarás.
- Export-Csv: genera un archivo
.csvlisto para análisis.
Variaciones útiles
Exportar directamente a Excel (requiere módulo ImportExcel)
# Install-Module ImportExcel -Scope CurrentUser
$usuarios | Export-Excel -Path ".\MiembrosGrupo.xlsx" -AutoSizeFiltrar solo usuarios de un dominio específico
$usuarios | Where-Object { $_.Correo -like "*@tu-dominio.com" } | Export-Csv ".\Miembros_TuDominio.csv" -NoTypeInformation -Encoding UTF8Verificación y mejores prácticas
- Valida permisos efectivos para leer el grupo en Microsoft 365.
- En entornos con consentimiento, los scopes pueden requerir aprobación de administrador.
- En producción, añade
try { } catch { }y logs para diagnósticos. - Programa la ejecución con Task Scheduler para reportes recurrentes.
Preguntas frecuentes (FAQ)
¿Funciona con equipos de Microsoft Teams?
Sí. Microsoft Teams usa grupos de Microsoft 365, por lo que el script devuelve sus miembros.
¿Qué permisos mínimos necesito?
User.Read.All y Group.Read.All. En algunos tenants, el consentimiento de administrador es obligatorio.
¿Puedo agregar más columnas como teléfono o ciudad?
Sí. Añade propiedades del objeto $user (por ejemplo: $user.City, $user.MobilePhone) si están disponibles en tu directorio.
Referencias
Conclusión
Con PowerShell y Microsoft Graph puedes obtener miembros de grupo en Microsoft 365 y exportarlos de forma confiable. Adáptalo a tus políticas de seguridad, automatiza la tarea y mantén reportes consistentes para tus auditorías.

