En Exchange Server 2010 SP1 (y versiones posteriores), aparecieron cmdlets especiales de PowerShell: New-MailboxImportRequest y New-MailboxExportRequest, que le permiten importar o exportar el contenido del buzón de Exchange desde / hacia un archivo PST. En las versiones anteriores de Exchange, para importar / exportar datos de Exchange a un archivo PST, tenía que usar las utilidades de terceros (la mayoría de las veces, se usaba la utilidad ExMerge).

En Exchange 2016, 2013 y Office 365, el equipo de desarrollo de Exchange continuó desarrollando cmdlets de Exchange para importar / exportar a archivos PST, expandiendo ligeramente la funcionalidad y aumentando su rendimiento. En este artículo, cubriremos ejemplos típicos de importación / exportación de datos desde buzones de correo de Exchange a archivos de carpetas personales (PST).

Permisos de importación y exportación de buzones de correo en Exchange

La función de RBAC “Importación y exportación de buzones” debe asignarse a la cuenta de administrador con la que desea importar o exportar buzones de Exchange a PST (de forma predeterminada, incluso los administradores de Exchange no tienen estos permisos). Puede asignar esta función a su cuenta mediante el Shell de administración de Exchange:
New-ManagementRoleAssignment –Role “Mailbox Import Export” –User fr_exchange_admin
dónde fr_exchange_admin - es el nombre de la cuenta que obtiene los permisos de función "Importación y exportación de buzón".

Consejo. Para facilitar la administración, la función "Importación y exportación de buzones de correo" se suele asignar al grupo de seguridad AD. Posteriormente, si se tiene que ceder este derecho a otro usuario, bastará con agregar la cuenta de usuario a este grupo de dominio. En este caso, la sintaxis del comando es un poco diferente (supongamos que el nombre del grupo de AD es ExchangeAdmGroup):

New-ManagementRoleAssignment -Role "Mailbox Import Export" -SecurityGroup ExchangeAdmGroup

Lo mismo se puede hacer desde el EAC (Centro de administración de Exchange) mediante la asignación de la importación y exportación del buzón al usuario o grupo deseado.

Después de otorgar permisos de RBAC, reinicie el EAC o la consola de Management Shell.

New-MailboxImportRequest: Importación de archivos PST al buzón de Exchange

Para importar un archivo PST al buzón de Exchange, necesita lo siguiente además de los permisos RBAC:

  • El buzón de correo de Exchange de destino debe existir;
  • El archivo PST debe estar ubicado en la carpeta de red compartida y debe conocer la ruta UNC completa (no olvide que se puede acceder al archivo local en una computadora determinada a través de su ruta de red como \ PCName111 C $ PST tstmail.pst);
  • El usuario que realiza la operación de importación debe tener el permiso de lectura NTFS en la carpeta de red con el archivo de archivo de correo PST.

Utilice el siguiente comando para importar el contenido de un archivo PST desde una carpeta compartida al buzón del usuario prueba de uso.

New-MailboxImportRequest -Mailbox usetest -FilePath \HQ-FS01PSTusetest.pst

Al importar en el cuadro de destino, el contenido de las carpetas existentes se fusiona y se agregan nuevas carpetas a la estructura de carpetas de correo existente.

El contenido del archivo PST no se puede importar a la raíz del buzón de Exchange, sino a una de las carpetas existentes del buzón (por ejemplo, "Old_mail"). Por ejemplo, necesita importar solo el contenido de la carpeta Bandeja de entrada a la carpeta de correo de destino Old_mail:

New-MailboxImportRequest -Mailbox usetest -FilePath \HQ-FS01PSTusetest.pst  -TargetRootFolder "Old_mail" -IncludeFolders "#Inbox#"

Consejo. Aquí hay una lista completa de las carpetas estándar en el buzón de Exchange (Outlook):

  • Bandeja de entrada
  • Elementos enviados
  • Objetos eliminados
  • Calendario
  • Contactos
  • Borradores
  • diario
  • Tareas
  • Notas
  • Correo electrónico no deseado
  • ComunicaciónHistoria
  • Mensaje de voz
  • Fax
  • Conflictos
  • Problemas de sincronización
  • Fallos locales
  • ServerFailures

Después de ejecutar el comando de importación, la solicitud de importación se pone en cola para que la procese el servidor de Exchange (el procesamiento se realiza en el servidor con la función de servidor de acceso de cliente). Para ver la cola de solicitudes de importación, ejecute este comando:

Get-MailboxImportRequest

El estado de la tarea de solicitud de importación (En curso, Completado, En cola) para un buzón determinado se puede obtener de la siguiente manera:

Get-MailboxImportRequest mailtst

Para obtener información sobre el estado de la solicitud de importación (en porcentajes), ejecute el siguiente comando:

Get-MailboxImportRequest | Get-MailboxImportRequestStatistics

Get-MailboxImportRequestStatistics

Las solicitudes de importación completadas se pueden eliminar de la cola con este comando:

Get-MailboxImportRequest -Status Completed | Remove-MailboxImportRequest

Remove-MailboxExportRequest de la cola de intercambio

Para importar de forma masiva elementos de correo electrónico desde archivos PST a buzones de correo de varios usuarios, puede utilizar este comando (se supone que los nombres de los archivos pst corresponden a los nombres de los buzones de correo de los usuarios):

Foreach ($i in (Get-Mailbox)) { New-MailboxImportRequest -Mailbox $i -FilePath "\HQ-FS01PST$($i.Alias).pst" }

Si el proceso de importación falla, puede obtener información detallada sobre sus motivos en el informe generado de la siguiente manera:

Get-MailboxImportRequest -Status Failed | Get-MailboxImportRequestStatistics -IncludeReport | Format-List > AllImportReports.txt

En la mayoría de los casos, los errores de importación se deben a:

Puede especificar la cantidad de elementos defectuosos en el archivo PST que se pueden omitir durante la importación. El siguiente comando importará los datos del archivo PST al buzón de Exchange y omitirá los primeros diez elementos fallidos antes de generar un error de importación:

New-MailboxImportRequest -Mailbox mailtst -FilePath \HQ-FS01PSTusetest.pst -BadItemLimit 10

New-MailboxExportRequest: Exportación de elementos del buzón de Exchange a un archivo PST

La exportación del contenido del buzón de Exchange es similar a la importación. Para exportar el contenido del buzón a un archivo PST, use el New-MailboxExportRequest cmdlet. Para exportar el buzón de correo del usuario mailtst a la carpeta de red compartida (este directorio debe crearse con anticipación y debe otorgar permisos de lectura y escritura en esta carpeta para el Subsistema de confianza de Exchange grupo de dominio), ejecute el siguiente comando:

New-MailboxExportRequest –Mailbox mailtst –FilePath \HQ-FS01ExportPSTmailtst.pst

New-MailboxExportRequest: exporta el buzón del usuario a un archivo pst

Si tiene que exportar a un archivo PST solo elementos de correo electrónico de una carpeta específica, por ejemplo, Bandeja de entrada, el comando se ve así:

New-MailboxExportRequest –Mailbox mailtst –FilePath \HQ-FS01ExportPSTmailtst.pst -IncludeFolders “#Inbox#”

Para excluir una carpeta de la exportación, use el parámetro ExcludeFolders. Por ejemplo, no es necesario exportar los elementos eliminados a un archivo PST:

New-MailboxExportRequest –Mailbox mailtst –FilePath \HQ-FS01ExportPSTmailtst.pst -ExcludeFolders “#DeletedItems#”

Consideremos una tarea más compleja: supongamos que tiene que exportar todos los correos electrónicos recibidos después del 1 de enero de 2019 que contengan las palabras clave "Proyecto" y "Londres".

New-MailboxExportRequest –Mailbox mailtst –FilePath \HQFS01ExportPSTmailtst.pst –ContentFilter {(body –like “*Project*”) –and {body –like “*London*”) –and (Received –lt “01/01/2019”)}

También puede exportar elementos solo desde una carpeta específica con resultados de búsqueda en un buzón de búsqueda, obtenidos mediante el cmdlet Search-Mailbox.

La solicitud de la tarea de exportación también se pone en cola en el servidor de Exchange. Para ver el estado de la tarea de exportación, ejecute este comando:

Get-MailboxExportRequest -Mailbox "mailtst" | Format-List

Estado de Get-MailboxExportRequest

RunspaceId : 3233f0d3-1b4b-4610-b0a2-6f29a543cc54
FilePath : \HQFS01ExportPSTmailtst.pst
SourceDatabase : db1
Mailbox :
Name : MailboxExport
RequestGuid : e03de01f-3333-111a-95fa-23faaf97ebf9
RequestQueue : db1
Flags : IntraOrg, Push
BatchName :
Status : Completed
Protect : False
Suspend : False
Direction : Push
RequestStyle : IntraOrg
OrganizationId :
Identity : mailtstMailboxExport
IsValid : True
ObjectState : New

No olvide limpiar periódicamente las solicitudes completadas para la exportación de buzones de correo a archivos PST:

Get-MailboxExportRequest -Status Completed | Remove-MailboxExportRequest

Al exportar el buzón del usuario a un archivo PST, el contenido del buzón del usuario en el servidor Exchange no se borra.

Puede exportar varios buzones de correo de usuario de forma masiva. Cree un archivo de texto csv con el siguiente formato:

Username, UNCPathtoPst
t.holland,\HQFS01ExportPSTholland.pst
d.orr,\HQFS01ExportPSTorr.pst

Ejecute la exportación de buzones de correo de usuario a archivos PST:

Import-CSV "C:psuser_list_export_pst.csv" | ForEach {New-MailboxExportRequest -Mailbox $_.username -FilePath $_.UNCPathtoPst

Recomendado para ti