Cómo encontrar los buzones de correo accesibles de un usuario en Exchange y Microsoft 365

Rastrear quién tiene acceso a qué en tu configuración de Exchange Server o Microsoft 365 puede ser a veces un poco complicado. Si intentas auditar los permisos de los buzones (por ejemplo, para confirmar si alguien tiene acceso total o permisos de «Enviar como»), los scripts de PowerShell suelen ser la mejor opción. Es un poco extraño, pero te permiten obtener una visión clara rápidamente. Sin embargo, configurarlos puede complicarse rápidamente, especialmente con organizaciones grandes o con varios tipos de buzones. Por lo tanto, aquí tienes un resumen de algunos scripts prácticos que puedes ejecutar; estos son los que he usado y que realmente ayudan a determinar los permisos de los buzones, incluso si son un poco torpes o lentos en entornos grandes.

Otra nota: si buscas permisos para carpetas específicas (como solo el Calendario o la Bandeja de entrada), es otra historia. Pero no te preocupes, el mismo método de PowerShell se puede adaptar. No es perfecto, pero es mejor que pasar horas navegando por el portal de administración.

Cómo encontrar buzones de correo a los que un usuario tiene acceso en Exchange o Microsoft 365

Uso de Get-MailboxPermission para obtener derechos de acceso completo

Primero, lo básico. Quiere ver quién tiene permisos en buzones específicos. El comando principal es Get-MailboxPermission. Es sencillo, pero necesitará conectarse a su entorno de Exchange (local o en línea).¿Por qué es útil? Porque extrae los permisos directos, no solo las pertenencias a grupos. Obtendrá un resumen rápido de si alguien tiene control total o permisos de lectura. Espere una tabla con nombres de usuario, permisos y si son heredados o asignados directamente. Este comando es especialmente útil si está verificando los permisos otorgados manualmente, ya que, por supuesto, Windows y Exchange tienden a generar confusión con la herencia.

Así es como suele verse:

get-mailboxpermission -identity <[email protected]> | ft -AutoSize

Muestra los usuarios y sus permisos en ese buzón. En algunas configuraciones, funciona a la primera, pero en otras, podría ser necesario volver a ejecutarlo o reiniciar PowerShell (o esperar un poco).No entiendo por qué a veces funciona a la primera y a otras no, pero esa es la frustrante realidad de estos scripts.

Obtener un informe completo de permisos en una vista de cuadrícula

Si quieres tener una visión general, ejecuta esto:

Get-Mailbox | Get-MailboxPermission | where {$_.user.tostring() -ne "NT AUTHORITY\SELF" -and $_. IsInherited -eq $false} | Out-GridView

Esto presenta todo en una bonita vista de cuadrícula, filtrando los permisos propios predeterminados y los heredados. Resulta útil para auditorías rápidas. Tenga en cuenta que puede ser lento si tiene muchos buzones de correo.

Cómo encontrar buzones de correo a los que un usuario tiene acceso completo

¿Quieres comprobar qué buzones puede abrir completamente un usuario específico? Este comando es ideal:

Get-Mailbox -ResultSize Unlimited | Get-MailboxPermission -User Henrietta | ft User, Identity, AccessRights

Esto proporciona una lista de buzones de correo, para que puedas ver si Henrietta tiene acceso completo u otros permisos. Es muy útil para identificar permisos otorgados a usuarios específicos, por ejemplo, para cumplimiento normativo o limpieza. A veces, esto presenta algunas sorpresas, como que los usuarios tengan más acceso del que creen o deberían.

Uso de Exchange Online PowerShell v3 (EXO V3)

Si ya usas Microsoft 365, el nuevo módulo EXO V3 lo hace un poco más práctico. Los comandos son ligeramente diferentes, pero la idea es la misma. Por ejemplo:

Get-EXOMailbox -ResultSize Unlimited | Get-EXOMailboxPermission -Identity $_. Identity | Where-Object {$_. User -eq "[email protected]"}

Consejo: Puedes filtrar por tipo de buzón con –RecipientTypeDetails. Esto agiliza el proceso cuando solo te interesan los buzones compartidos, de sala o de usuario. Por ejemplo:

Get-Mailbox -ResultSize Unlimited -RecipientTypeDetails SharedMailbox | Get-MailboxPermission -User "Henrietta" | ft User, Identity, AccessRights

Obtener permisos SendAs y Send on Name

Para obtener derechos SendAs, prueba esto:

Get-Mailbox -RecipientTypeDetails UserMailbox -ResultSize Unlimited | Get-RecipientPermission -Trustee Henrietta

Y para “Enviar en nombre de”, puedes buscar al usuario en la GrantSendOnBehalfTopropiedad:

Get-Mailbox | ? {$_. GrantSendOnBehalfTo -match "Henrietta"}

Cómo comprobar los permisos de carpetas específicas en los buzones de correo

Si los permisos son más granulares, como el acceso solo al Calendario o la Bandeja de entrada, es un poco más complicado. Puedes usar Get-MailboxFolderStatisticsy Get-MailboxFolderPermission. Piensa en ello como si estuvieras analizando a fondo la estructura del buzón. El script a continuación analiza todos los buzones y lista los permisos de carpeta para un usuario determinado. Sin embargo, es lento en organizaciones grandes, así que intenta centrarte en buzones específicos si es posible. Porque, claro, Exchange tiene que complicarlo más de lo necesario.

$user_find_permissions= "*Henrietta Fischer*" $allpermissions = @() $MBXs = Get-Mailbox -ResultSize Unlimited Foreach ($MBX in $MBXs){ $folders = Get-MailboxFolderStatistics -Identity $MBX. PrimarySmtpAddress foreach ($folder in $folders){ try { $folderPath = "$($MBX. PrimarySmtpAddress):\" + $folder. Name $folderPerms = Get-MailboxFolderPermission -Identity $folderPath -ErrorAction Stop | Where {$_. User -like $user_find_permissions} $allpermissions += $folderPerms } catch { # skipping folders where permissions can't be retrieved Continue } } } $allpermissions | Select Identity, FolderName, User, AccessRights 

Este script genera todas las carpetas (incluidas las subcarpetas) a las que el usuario tiene acceso, junto con los niveles de permiso, como Editor o Revisor. Es muy útil cuando las auditorías necesitan ser más detalladas, pero prepárese: puede ser lento con buzones grandes o muchas carpetas.

Para necesidades más avanzadas, los nuevos Get-EXOMailboxFolderPermissioncmdlets Get-EXOMailboxFolderStatisticstambién están disponibles en los módulos más recientes. Se supone que son más rápidos y están más integrados, pero aún presentan algunas peculiaridades.

Y si su objetivo principal es buscar o eliminar correos electrónicos, comandos como Search-Mailbox o New-ComplianceSearch son el camino a seguir, pero esa es una historia para otro día.

Resumen

Controlar los permisos del buzón en este entorno tan complejo a veces es un proceso de prueba y error. Estos scripts son muy útiles para extraer información de la pila, pero no son perfectos. Es posible que surjan problemas en instalaciones grandes o configuraciones de permisos complejas. A veces se necesita un poco de paciencia: volver a ejecutar scripts, ajustar filtros o iniciar sesión con una cuenta diferente ayuda. Pero, en general, estos métodos han evitado muchos dolores de cabeza en comparación con revisar manualmente los permisos.

Resumen

  • Úselo Get-MailboxPermissionpara obtener una lista rápida de quién tiene permisos en un buzón.
  • Ejecute consultas más grandes con opciones de filtrado -RecipientTypeDetailspara acelerar las cosas.
  • Verifique los permisos de carpetas específicas con Get-MailboxFolderPermission, pero espere ralentizaciones en muchos datos.
  • Mezcle algunos filtros por tipo de usuario o buzón para limitar los resultados.

Resumen

Básicamente, es una combinación de estos scripts y algo de sentido común. Ideal para auditorías, investigaciones o limpieza. A veces hay suerte a la primera, y a veces, se necesitan repeticiones o lotes más pequeños. Si esto consigue que una actualización avance, es un triunfo. Crucemos los dedos para que esto ayude a aclarar la confusión.