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:
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!