Outlook se queda bloqueado al abrirse durante unos minutos

Hola a tod@s!

Lo primero de todo, FELIZ AÑO NUEVO!!!
Ahora vamos con el tema de hoy. Uno de los problemas más recurrentes son problemas de bloqueo de Outlook al abrirse, principalmente trabajando con Office 365. La principal causa de dichos problemas es la funcionalidad de Automapping, introducida en Exchange 2010:

What's New in Exchange 2010 SP2
http://technet.microsoft.com/en-us/library/hh529924(v=exchg.141).aspx#BKMK_MailboxAutoMap

Para poder evitar estos problemas la mejor opción es quitar los permisos de FullAccess y asignarlos nuevamente deshabilitando Automapping, en el siguiente enlace tenéis más detalles sobre cómo realizarlo en Office 365:

You may experience Outlook 2010 connection delays or failures when Outlook 2010 is configured to connect to two Office 365 accounts
http://support.microsoft.com/kb/2675986/en-us

Para Exchange Onpremise podemos agilizar dicho cambio siguiendo los pasos descritos aquí:

Disable Outlook Auto-Mapping with Full Access Mailboxes
http://technet.microsoft.com/en-us/library/hh529943(v=exchg.141).aspx

Sin embargo, esto falla cuando trabajamos a través de PowerShell contra Exchange Online. Este fallo se debe a un cambio en el tipo de objeto que estamos utilizando. En Exchange 2010 o 2013 tenemos el siguiente tipo de objeto:

Mientras que en Exchange Online se utiliza un tipo custom:

Para poder automatizar o hacer que la asignación de permisos sea más rápida podemos ejecutar estos pasos:

1. Obtener un listado de los buzones sobre los cuales otros usuarios tienen permiso de FullAccess:

get-mailbox  -resultsize unlimited | Get-MailboxPermission | where {$_.AccessRights -eq "FullAccess" -and $_.IsInherited -eq $false -and $_.identity -ne "DiscoverySearchMailbox{D919BA05-46A6-415f-80AD-7E09334BB852}"} | Export-Csv c:\temp\mbxfullaccess.csv -NoTypeInformation

2. Importar los datos a una variable (podemos editar el fichero previamente para eliminar entradas de permisos que queramos mantener con automapping):

$mailbox =Import-Csv "C:\temp\mbxfullaccess.csv"

3. Eliminar los permisos existentes:
$mailbox | foreach {Remove-MailboxPermission -Identity $_.identity -User $_.user -AccessRights fullaccess}

Podemos utilizar –Confirm:$false al final del comando para evitar que solicita la confirmación de la eliminación de los permisos para cada entrada:
$mailbox | foreach {Remove-MailboxPermission -Identity $_.identity -User $_.user -AccessRights fullaccess -Confirm:$false}

4. Asignación de los permisos:
$mailbox | foreach {add-MailboxPermission -Identity $_.identity -User $_.user -AccessRights fullaccess -AutoMapping $false}

Esperamos que os sea de utilidad.

Saludos,
Pablo