Entre las múltiples posibilidades que ofrece el servidor de correo Exchange, encontramos la posibilidad de asignar a usuarios diferentes niveles de acceso a cuentas de terceros, hoy vamos a ver tanto como gestionar estos permisos como la manera de visualizarlos para no perder el control sobre los mismos.

ExchangeOnline logo

A través de la interfaz web de Exchange Online, podremos fácilmente asignar o revocar tres tipos de permisos en una cuenta determinada:

  • Enviar e-mail desde esta cuenta (Send email from this mailbox)
  • Acceso de lectura y gestión a la cuenta (Read and manage email to this mailbox)
  • Enviar e-mail en nombre de (Send on behalf of this mailbox)

Los cuales los podemos combinar para dar a un tercero el acceso deseado a esta cuenta de correo. Como siempre la gestión a través de la interfaz gráfica es sencillo pero desde el momento en que disponemos de un gran número de cuentas y vamos asignando permisos la gestión se va complicando. Ahí es donde Powershell se convierte en indispensable con los siguientes cmdlets.

  • cmdlet Get-MailboxPermission

Este cmdlet nos permite ver los permisos existentes sobre una cuenta determinada. Aquí veremos todos los permisos, es decir tanto los asignados a terceros usuarios que comentábamos antes como todos los del propio sistema a administradores,etc..

Get-MailboxPermission -Identity [email protected] | Format-List

También podemos ver por ejemplo los permisos de una cuenta determinada sobre otra

Get-MailboxPermission -Identity [email protected] -User "Otrousuario"

esta información también la podemos obtener concatenando dos cmdlets

Get-Mailbox [email protected] | Get-MailboxPermission -User "Otrousuario"

Para ver todas las cuentas sobre las que un usuario tiene algún tipo de acceso podemos usar el siguiente comando. En este caso sería necesario utilizar el "-ResultSize" si tenemos un gran número de cuentas en nuestro servidor de correo.

Get-Mailbox -ResultSize Unlimited | Get-MailboxPermission -User "OtroUsuario" | Format-Table Identity, AccessRights, Deny

También podemos ver rápidamente quien es el dueño de una cuenta o recurso determinado

Get-MailboxPermission -Identity [email protected] -Owner

Vistos estos ejemplos para obtener información sobre los permisos vamos a ver como cambiarlo.

  • cmdlet Add-MailboxPermission y Remove-MailboxPermission

Pues sencillo, tal y como su nombre indica podremos usar estos cmdlets para añadir o quitar permisos basándonos en la información que hemos obtenido con el cmdlet Get-MailboxPermission. Como comentábamos antes los permisos serían principalmente los de FullAccess, SendAs y ReadPermission.

Vamos a dar FullAccess (acceso de lectura y gestión de mails,carpetas) a un tercero

Add-MailboxPermission -Identity "[email protected]" -User "[email protected]" -AccessRights FullAccess -InheritanceType All

Y de la misma manera vemos como se quita este permiso

Remove-MailboxPermission -Identity "[email protected]" -User "[email protected]" -AccessRights FullAccess -InheritanceType All

Como podéis ver hemos utilizado el "-InheritanceType All" con esto le indicamos que el acceso se lo asignamos a todas las carpetas de la cuenta. Pero también podemos asignar un acceso modular a una determinada carpeta y a solo los emails contenidos en la misma.

  • cmdlet Set-MailboxFolderPermission

Por ejemplo si solo queremos dar el acceso a la carpeta "Contabilidad" usaremos el comando

Set-MailboxFolderPermission -Identify [email protected]:\Contabilidad -User [email protected] -AccessRights Owner

Estos son solo algunos ejemplos de como podemos utilizar Powershell para tener los permisos en nuestras cuentas de correo siempre bajo control y al día.