Enumerar todos los grupos de los que un usuario es miembro o propietario en Office 365

PowerShell es su mejor apuesta para encontrar todos los grupos de los que un usuario es miembro o propietario en Office 365. Este artículo le mostrará cómo usar PowerShell para encontrar todas las membresías de grupo de Office 365 para un usuario específico.

Siga los pasos a continuación para averiguar qué membresías de grupo de Office 365 tiene un usuario:

  • Iniciar sesión en el Centro de administración de Microsoft 365
  • Luego, en la pestaña «Usuarios», debe buscar y encontrar el usuario que está buscando.
  • Una vez que lo obtenga, haga clic en el nombre del usuario para abrir las propiedades del usuario ->-> En el panel de propiedades del usuario, haga clic en «Administrar grupos» en «Grupos».
  • Aquí obtendrá todos los grupos de Office 365 de los que un usuario es miembro. Son grupos de Microsoft 365, grupos de seguridad o listas de distribución.
  • Hope you find this useful too: How to Enable Mailbox Auditing in Office 365 

    PowerShell para buscar usuarios Membresías de grupos de Office 365

    Get-Recipient -Filter "Members -eq 'CN=user,OU=tenant.onmicrosoft.com,OU=Microsoft Exchange Hosted Organizations,DC=ABCDE01A001,DC=prod,DC=outlook,DC=com'"

    donde ‘CN=usuario, OU=tenant.onmicrosoft.com, OU=Microsoft Exchange Hosted Organizations, DC=ABCDE01A001, DC=prod, DC=outlook, DC=com’ es el DistinguishedName del usuario, que se puede obtener, por ejemplo, a través de:

    Get-User user@domain.com | select -ExpandProperty DistinguishedName

    Ahora, el cmdlet Get-Recipient en Exchange Online no devuelve objetos de Grupos de Office 365 a menos que los incluya específicamente. Una versión actualizada del cmdlet anterior que da cuenta de Grupos se verá así:

    Get-Recipient -Filter "Members -eq 'CN=user,OU=tenant.onmicrosoft.com,OU=Microsoft Exchange Hosted Organizations,DC=ABCDE01A001,DC=prod,DC=outlook,DC=com'" -RecipientTypeDetails GroupMailbox,MailUniversalDistributionGroup,MailUniversalSecurityGroup

    y esto devolverá todos los grupos de distribución, grupos de seguridad habilitados para correo y grupos de Office 365 del usuario es miembro.

    Si también desea verificar la membresía de los grupos de roles de Exchange, use el cmdlet Get-Group:

    Get-Group -Filter "Members -eq 'CN=user,OU=tenant.onmicrosoft.com,OU=Microsoft Exchange Hosted Organizations,DC=ABCDE01A001,DC=prod,DC=outlook,DC=com'"

    Cubrir los cmdlets de Azure AD. Usando el cmdlet Get-AzureADUserMembership. Aquí hay un ejemplo:

    Get-AzureADUserMembership -ObjectId 584b1b38-888c-4b85-8a71-c9766cb4791b

    Si desea evitar el uso de ObjectIds, aquí hay un ejemplo que se ocupa de eso:

    Get-AzureADUser -SearchString user@domain.com | Get-AzureADUserMembership

    Ahora obtendrá la salida, que también está llena de ObjectIds. Podemos usar propiedades calculadas para evitar esto:

    Get-AzureADUser -SearchString user@domain.com | Get-AzureADUserMembership | ? {$_.ObjectType -ne "Role"}  | % {Get-AzureADGroup -ObjectId $_.ObjectId | select DisplayName,ObjectType,MailEnabled,SecurityEnabled,ObjectId} | ft

    Obtener la lista de objetos de los que el usuario es propietario

    Get-Recipient -Filter "ManagedBy -eq 'CN=user,OU=tenant.onmicrosoft.com,OU=Microsoft Exchange Hosted Organizations,DC=ABCDE01A001,DC=prod,DC=outlook,DC=com'" -RecipientTypeDetails 

    GroupMailbox, MailUniversalDistributionGroup, MailUniversalSecurityGroup, DynamicDistributionGroup

    Para obtener la información del propietario con Azure AD PowerShell, se puede usar el cmdlet Get-AzureADUserOwnedObject. Ejemplo de uso del cmdlet:

    Get-AzureADUserOwnedObject -ObjectId 584b1b38-888c-4b85-8a71-c9766cb4791b
    Hope you find this usefull: User Login History, Statistics and Activity Reports in the Office 365 

    Powershell para encontrar todos los grupos de distribución de los que un usuario es miembro:

    $cred = Get-Credential  $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $cred -Authentication Basic -AllowRedirection  Import-PSSession $Session  

    A continuación, guarde el Nombre de usuario de la persona que busca en una variable llamada Nombre de usuario

    $Username = "abc.xyz@abc.org"

    Ahora usaré este cmdlet que obtendrá todos los grupos de distribución en mi inquilino y luego buscaré aquellos en los que mi nombre de usuario está en los miembros.

    $DistributionGroups= Get-DistributionGroup | where { (Get-DistributionGroupMember $_.Name | foreach {$_.PrimarySmtpAddress}) -contains "$Username"}

    ¡Ahora puede mostrarlo o realizar otra acción, como eliminar al usuario de todos ellos!