Obtener una lista de buzones a los que tiene acceso un usuario en Exchange/Microsoft 365
Al auditar los permisos de los buzones de correo en una organización de Exchange Server o un arrendatario de Microsoft 365 (Exchange Online), el administrador debe encontrar todos los buzones de correo a los que tiene acceso un usuario en particular. En este artículo, veremos algunos scripts de PowerShell para obtener una lista de buzones (y una carpeta particular de Outlook) a los que un usuario específico tiene permisos de acceso.
Enumerar todos los buzones de correo de Exchange o Microsoft 365 a los que un usuario puede acceder
Use el cmdlet Get-MailboxPermission para obtener una lista de permisos asignados a un buzón.
Anteriormente, mostramos cómo administrar los permisos de buzones y carpetas en Exchange/Microsoft 365.
Abra una consola de PowerShell y conéctese de forma remota a su Exchange Server local o Microsoft 365 (Exchange Online).
El siguiente comando muestra una lista de usuarios que tienen permiso para acceder al buzón especificado:
get-mailboxpermission -identity t.muller@a-d.onmicrosoft.com |ft -AutoSize
En este ejemplo, puede ver que Grady y Henrietta han asignado los permisos de Acceso total al buzón especificado. Los permisos se asignan manualmente (no heredados), ya que
IsInherited = FalsePuede mostrar un informe completo sobre los permisos asignados a los buzones de correo y mostrarlo en una cómoda tabla Out-GridView:
Get-Mailbox | Get-MailboxPermission | where {$_.user.tostring() -ne "NT AUTHORITY\SELF" -and $_.IsInherited -eq $false} | Out-GridViewCon el siguiente comando de PowerShell, puede buscar y enumerar buzones en su organización o inquilino de Exchange para los que un usuario específico tiene permisos de acceso total:
Get-Mailbox -ResultSize Unlimited | Get-MailboxPermission -User Henrietta | ft User,Identity,AccessRightsEn este ejemplo, hemos encontrado que a un usuario se le ha asignado acceso total a tres buzones (la columna Identidad).
En Microsoft 365, puede usar los nuevos cmdlets del módulo Exchange Online PowerShell v2 (EXO V2) para obtener esta lista:
Get-EXOMailbox -ResultSize Unlimited | Get-EXOMailboxPermission -Identity $_.Identity | Where-Object {$_.User -eq "Henrietta@a-d.onmicrosoft.com"}Puede utilizar filtros por tipo de buzón. Hará que su búsqueda sea más rápida. Para hacerlo, agregue el
-RecipientTypeDetailsal comando Get-EXOMailbox o Get-Mailbox y especifique el tipo de buzón que desea buscar:
- DiscoveryMailbox
- EquipmentMailbox
- GroupMailbox
- LegacyMailbox
- LinkedMailbox
- LinkedRoomMailbox
- RoomMailbox
- SchedulingMailbox
- SharedMailbox
- TeamMailbox
- UserMailbox
Por ejemplo:
Get-Mailbox -ResultSize Unlimited -RecipientTypeDetails SharedMailbox| Get-MailboxPermission -User "Henrietta" | ft User,Identity,AccessRights
Para buscar buzones de correo en los que un usuario tiene permisos SendAs:
Get-Mailbox -RecipientTypeDetails UserMailbox -ResultSize Unlimited | Get-RecipientPermission -Trustee HenriettaTambién puede encontrar buzones con permisos Enviar en nombre habilitados:
Get-Mailbox | ? {$_.GrantSendOnBehalfTo -match "Henrietta"}Puede usar el registro de auditoría de Exchange y los registros de inicio de sesión de Azure para obtener información sobre las actividades de los usuarios en los buzones de correo de otros usuarios.
¿Cómo enumerar las carpetas de buzones a las que un usuario puede acceder en Exchange/Microsoft 365?
Además de asignar permisos a todo el buzón de Exchange (Microsoft 365), puede otorgar acceso a una carpeta de buzón específica. Por ejemplo, sólo a la
Inboxo
Calendarcarpeta. Al auditar los permisos de los usuarios, a veces tiene que encontrar no solo buzones con permisos FullAccess, sino también carpetas específicas en los buzones de los usuarios a las que otros usuarios tienen acceso.
Puede obtener una lista de carpetas en el buzón especificado mediante el cmdlet Get-MailboxFolderStatistics. Luego, puede usar Get-MailboxFolderPermission para enumerar los permisos de las carpetas.
El siguiente script de PowerShell comprueba todos los buzones de su organización y enumera las carpetas (incluidas las subcarpetas) a las que tiene acceso un usuario.
En organizaciones de Exchange con una gran cantidad de buzones, la secuencia de comandos puede funcionar lentamente. Se recomienda filtrar previamente la lista de buzones o consultarla por partes. El tamaño del buzón y la cantidad de carpetas que contiene también afectan el rendimiento del script cuando obtiene información sobre una carpeta mediante Get-MailboxFolderStatistics.
$user_find_permissions= "*Henrietta Fischer*"
$allpermissions = @()
$MBXs= Get-Mailbox -ResultSize Unlimited
Foreach ($MBX in $MBXs){
$MBXfolders=Get-MailboxFolderStatistics $MBX.PrimarySmtpAddress |select Name
Foreach ($MBXfolder in $MBXfolders){
try {
$folder=$MBX.PrimarySmtpAddress + ":\" + $MBXfolder.name
$folderpermessions= Get-MailboxFolderPermission -Identity $folder -ErrorAction Stop | where {($_.user -like $user_find_permissions)}
$allpermissions += $folderpermessions
}
catch {
Continue
}
}
}
$allpermissions | select Identity, FolderName, User,AccessRights
Este script de PowerShell mostrará una lista de todas las carpetas en los buzones de correo de otros usuarios a los que tiene acceso un usuario en particular. Se muestran el nombre del buzón (Identidad), el Nombre de carpeta y los permisos de carpeta asignados (Editor, Revisor, etc.).
Puede usar los cmdlets Search-Mailbox o New-ComplianceSearch para buscar y eliminar mensajes de correo electrónico específicos en los buzones de los usuarios.
Además, puede utilizar el nuevo
Get-EXOMailbox,
Get-EXOMailboxFolderPermission, y
Get-EXOMailboxFolderStatisticscmdlets en el módulo EXOv2 para Microsoft 365.


