jueves, 14 de noviembre de 2013

Exportar Buzón Exchange 2010 Exchange 2013 a PST a un recurso compartido

En esta nueva entrada vamos a explicar como exportar un buzón de Exchange 2010 o Exchange 2013 a PST a través de powershell. Muchas veces es necesario un buzón que tenemos en el servidor pasarlo a PST. Pues este es el procedimiento.

  1. Lo primero que tenemos que hacer es abrir powershell en nuestro servidor con permisos de administrador.
  2. Lo siguiente es dar permisos al usuario para poder importar y exportar para ello ejecutamos el siguiente comando en la consola de powershell.
    • "New-ManagementRoleAssignment –Role "Mailbox Import Export" –User Administrador"
  3. Tenemos que cerrar el powershell y volver abrirlo para que se actualicen los permisos.
  4. Si queremos exportarlo a un recurso compartido tiene que tener permiso el Servidor Exchange para escribir en ese recurso. Para ello damos permiso en el recurso al siguiente usuario de escritura:
    • "Exchange Trusted Subsystem (daneted.com\Exchange Trusted Subsystem)"
  5. Una vez que lo tenemos todo solo tenemos que decir que lo exporte y a donde lo queremos exportar. Para ello ejecutamos el siguiente comando:
  6. Con esto nos pondrá el proceso en cola y nos saldrá una ventana parecida a esta:
  7. Si queremos hacer comprobaciones podemos ejecutar el siguiente comando que nos dice en que estado esta la tarea:
    • "Get-MailboxExportRequest"
  8. Si queremos ver información detallada de la tarea pod mos ejecutar el siguiente comando:
    • "Get-MailboxExportRequest -Name MailboxExport | fl"
    • RunspaceId     : 47a09bbb-5a6e-44fc-9612-14d859ea6603
      FilePath       :
      \\exchange2010.daneted.com\pst\l0c0d1n0
      SourceDatabase : edb01
      Mailbox        : daneted.com/usuarios/l0c0d1n0
      Name           : MailboxExport
      RequestGuid    : a37dcf1d-9d68-413e-8223-2276f4394713
      RequestQueue   : edb01
      Flags          : IntraOrg, Push
      BatchName      :
      Status         : Queued
      Protect        : False
      Suspend        : False
      Direction      : Push
      RequestStyle   : IntraOrg
      OrganizationId :
      Identity       : daneted.com/usuarios/l0c0d1n0\MailboxExport
      IsValid        : True
  9. Si queremos ver en que proceso esta y el porcentaje ejecutamos lo siguiente:
    • "Get-MailboxExportRequest | Get-MailboxExportRequestStatistics"
  10. Si queremos hacer una consulta de los buzones completados:
    • "Get-MailboxExportRequest | where {$_.status -eq "Completed"}"
  11. Una vez terminado el proceso lo único que nos falta es borrar la tarea para ello ejecutamos ya el último comando que sería:
    • "Get-MailboxExportRequest | where {$_.status -eq "Completed"} | Remove-MailboxExportRequest"

Espero que os sirva de utilidad y os ahorre bastantes horas de trabajo. Si tenéis alguna duda no dudéis en consultarme.

11 comentarios:

  1. Buenísimo y muy útil. Evita que tengas que hacerte una copia del buzón en tu equipo antes de exportarla o molestar al usuario en su equipo. De esta forma sólo le dices que no use el Outlook y puede seguir trabajando. Muchas gracias y muy buen blog. Enhorabuena!!!!

    ResponderEliminar
  2. Se puede automatizar? me refiero, si se puede crear una tarea programada para que lo haga por ejempl, cada semana

    ResponderEliminar
    Respuestas
    1. Si claro que puedes automatizarlo. Puedes generarlo como un script y luego ejecutarlo con el programador de tareas. por ejemplo.

      Eliminar
  3. Buenas tardes, existe alguna forma de exportar a archivos .pst a un listado de buzones? Es decir a través de un comando indicar los buzones y realizar la exportación masivamente.?

    ResponderEliminar
    Respuestas
    1. Buenas tardes Víctor. Lo que se puede hacer es un script en powershell que se alimente de una lista. Si quieres envíame un correo y te paso el script.

      Eliminar
    2. Agradecido de antemano por su apoyo amigo, mi correo vcastellano41@gmail.com; mil gracias de verdad.

      Eliminar
    3. Este comentario ha sido eliminado por el autor.

      Eliminar
    4. Listo hermano, ya encontre el comando es el siguiente:
      foreach ($i in (Import-Csv .\exports.csv)) { New-MailboxExportRequest -Mailbox $i.Alias -FilePath "\\Ruta_Destino\$($i.Alias).pst" }

      Eliminar
    5. Excelente muchas gracias por el aporte.

      Eliminar
  4. Este comentario ha sido eliminado por el autor.

    ResponderEliminar