Recuperar contenido de un buzón eliminado en Exchange Online

Hola a todos,

En esta ocasión vamos a ver paso por paso de como recuperar el contenido de un buzón que se encuentra en un estado de “soft-deleted” o desconectado en Exchange Online.

Para ello, vamos a enumerar que situaciones pueden llevar a un buzón a un estado de “Soft-Deleted”:

  • Si hemos eliminado el usuario desde el apartado de usuarios en el portal de Office365
  • Si hemos quitado la licencia de Exchange Online al usuario.
  • Si disponemos de un entorno sincronizado con nuestro AD local y hemos eliminado o movido el usuario a una OU que no está sincronizada con Office365.

Normalmente, si nos encontramos en las dos primeras situaciones, simplemente bastaría con restaurar el usuario desde el portal de usuarios de Office365 (en la primera situación), y asignar de nuevo la licencia de Exchange Online al usuario (en la segunda situación) para que el buzón pueda reconectarse de forma automática.

En la tercera situación, si hemos movido el usuario a otra OU, bastaría con volver a mover el usuario a una OU que esté sincronizada con Office365 y forzar una sincronización de directorios; pero si hemos eliminado al usuario del directorio activo local, salvo que tengamos habilitada la papelera de reciclaje de AD, tendríamos que realizar una restauración autoritativa en un DC para recuperar al objeto con todos los atributos de forma que al sincronizar de nuevo reconecte el buzón automaticamente en Exchange Online. Sin embargo, esto resulta “peligroso” y engorroso para recuperar un simple buzón, y es por ello que muchas organizaciones directamente crean el usuario de nuevo, pero esto provoca que se cree un buzón totalmente nuevo en la nube dado que el objeto que sincroniza no es el mismo que sincronizaba con el buzón que esta en un estado de “Soft-Deleted”.

Si nos encontramos en este punto, entonces no hay de que preocuparse, podemos tirar del CmdLet de “New-MailboxRestoreRequest” (mas información en https://technet.microsoft.com/en-us/library/ff829875(v=exchg.150).aspx).

Es muy importante destacar que el buzón unicamente permancerá en un estado de “soft-deleted” durante 30 días. Una vez pasado este tiempo, el buzón será irrecuperable salvo que se encuentre con Litigation Hold o In-Place Hold activo (hablaremos de esto en otro post).

  1. Lo primero será conectarnos a Exchange Online mediante PowerShell como Global Admin de la suscripción de Office365
  2. Lo siguiente será verificar que el buzón que buscamos está en un estado de “soft-deleted” con el CmdLet “Get-Mailbox AliasEliminado -SoftdeletedMailbox“. Si el buzón no esta listado como “soft-deleted” no podremos continuar.
  3. A continuación, sacaremos el ExchangeGuid del buzon eliminado/desconectado ejecutando “Get-Mailbox AliasEliminado -SoftdeletedMailbox | fl ExchangeGuid
  4. Haremos lo mismo con el buzón al que queremos copiar el contenido (este es el buzón que esta activo actualmente) con el CmdLet “Get-Mailbox AliasActivo | fl ExchangeGuid“. Notese que en el anterior teníamos el parámetro “-SoftDeletedMailbox” y aqui no.
  5. Ahora que disponemos de ambos ExchangeGuid (origen y destino), procederemos a crear la petición de merge de la siguiente forma: “New-MailboxRestoreRequest -Name “RestoreName” -SourceMailbox “<ExchangeGuid de paso 3> -TargetMailbox<ExchangeGuid de paso 4>” –AllowLegacyDNMissmatch
    1. Si quisiéramos hacer el merge de un archivado a otro tendríamos que especificar los parámetros “SourceIsArchive” y “TargetIsArchive” en el comando anterior de forma que indiquemos que el contenido a copiar corresponde al buzón de archivado y que debe copiarse al buzón de archivado de destino, por lo que el CmdLet quedaría de la siguiente forma: “New-MailboxRestoreRequest -Name “RestoreName” -SourceMailbox “<ExchangeGuid de paso 3>” -SourceIsArchive -TargetMailbox<ExchangeGuid de paso 4>-TargetIsArchiveAllowLegacyDNMissmatch
  6. Una vez creada la petición, obtenemos el RequestId mediante el CmdLet “Get-MailboxRestoreRequest | fl Name, RequestId” La razón de este paso es para evitar coincidencias cuando el alias de origen y destino es el mismo.
  7. Y por ultimo, ejecutar la petición con el CmdLet “Resume-MailboxRestoreRequest “RequestId obtenido en paso 6”

Como sabremos que el proceso ha finalizado o que porcentaje lleva copiado, así como el detalle de cuanto lleva copiado?, muy sencillo, con el CmdLet “Get-MailboxRestoreRequestStatistics “RequestId obtenido en paso 6” | fl Name, Status, TargetAlias, PercentComplete, *transf*“:

Al finalizar el proceso, deberíamos tener todo el contenido del buzón eliminado en el buzón activo.

Espero que os sirva de utilidad.

 

Update – 13 de Enero 2017: Actualizado el artículo para aplicar a archivado online también y obtener mayor detalle del estado del proceso