Búsqueda de sitios web

Cómo informar de todos los usuarios y miembros de grupos con Microsoft Graph PowerShell


Identificar a qué grupos es miembro un usuario como administrador es bastante sencillo si solo necesita averiguarlo para un único usuario. Desde Microsoft Entra, simplemente puede buscar el usuario de destino y hacer clic en la pestaña Grupos. Sin embargo, no siempre es preferible utilizar el portal de administración, especialmente si necesita buscar esta información con frecuencia o averiguar las membresías de grupo de cada usuario.

En este tutorial, le mostraré cómo puede usar Microsoft Graph PowerShell para generar un informe de las membresías de grupos de todos los usuarios.

Acerca de Get-MgUserMemberOfAsGroup

El cmdlet Get-MgUserMemberOfAsGroup le permite encontrar de qué grupos es miembro un usuario; esto es útil al intentar solucionar problemas relacionados con el acceso o por la noche si se le solicita que genere un informe de membresía para un único grupo. o todos los usuarios de su organización.

El cmdlet forma parte de los módulos Microsoft.Graph.Users y, como tal, deberá asegurarse de tener instalada la versión más actualizada de los módulos Microsoft Graph PowerShell. Para obtener detalles sobre cómo instalar este módulo, siga mi tutorial sobre Cómo instalar el módulo Microsoft Graph PowerShell.

Consulte lo siguiente para obtener más información sobre este cmdlet:

  • Nombre: Get-MgUserMemberOfAsGroup
  • Método: OBTENER
  • URI: https://graph.microsoft.com/v1.0/users/{user-id}/memberOf/group
  • Tipo de salida: Objeto
  • Permisos: Usuario.Leer.Todo, Directorio.Leer.Todo

Buscar todos los grupos a los que pertenece un usuario

Puede utilizar el siguiente código para obtener una lista de grupos a los que es miembro un solo usuario. Asegúrese de cambiar el campo -UserId con el nombre de usuario de su usuario objetivo.

Connect-MgGraph -Scopes user.read.all, directory.read.all

Get-MgUserMemberOfAsGroup -UserId [email 

Los resultados de los comandos anteriores se verán como los siguientes:

Informar de todos los usuarios y membresías de grupos con Microsoft Graph PowerShell

Podemos ampliar nuestro último comando para generar un informe de todos los usuarios y sus membresías grupales en nuestro inquilino de Microsoft 365. Para hacer esto, usaremos el comando ForEach para recorrer cada usuario y agregar esta información a una matriz. Luego, esa matriz se exportará a un CSV.

Para obtener más detalles sobre cómo generar sus propios informes personalizados utilizando bucles ForEach, consulte mi tutorial, Cómo utilizar un bucle Foreach de Powershell con ejemplos.

Connect-MgGraph -Scopes user.read.all, directory.read.all

$users = Get-MgBetaUser -All
$Report = [System.Collections.Generic.List[Object]]::new()

ForEach ($user in $users){
    $groups = $null
    $groups = Get-MgUserMemberOfAsGroup -UserId $user.UserPrincipalName
    ForEach ($group in $groups){
        $obj = [PSCustomObject][ordered]@{
        "User" = $User.UserPrincipalName
        "Group Name" = $group.DisplayName
        "Is M365 Group" = $(if ($group.GroupTypes -match 'Unified'){"Yes"}Else{"No"})
        "Membership Type" = $(if ($group.GroupTypes -match 'DynamicMembership'){"Dynamic"}Else{"Assigned"})
        "Security Enabled" = $group.SecurityEnabled
        "Mail Enabled" = $group.MailEnabled
        "Mail Address" = $(if ($Group.mail -eq $Null){"N/A"}Else{$group.mail})
         }
         $report.Add($obj)
    }
}

$report | Export-csv -path C:\temp\UserGroupMemberReport.csv

Artículos relacionados