Uso de la migración por lotes para migrar carpetas públicas de Exchange 2010 a Exchange 2016 o Exchange 2019

Migre las carpetas públicas de Exchange Server 2010 SP3 RU8 a Exchange Server 2016 o Exchange 2019 dentro del mismo bosque.

Para referirnos a los servidores de Exchange 2010 SP3 RU8 o posteriores utilizaremos el término servidor de Exchange heredado.

Realizará la migración mediante los cmdlets *MigrationBatch y los cmdlets *PublicFolderMigrationRequest para solucionar problemas. Además, usará los siguientes scripts de PowerShell:

  • Export-PublicFolderStatistics.ps1: este script crea el archivo de asignación de tamaño de nombre de carpeta a carpeta.

  • Export-PublicFolderStatistics.psd1: el script de Export-PublicFolderStatistics.ps1 usa este archivo de soporte técnico y se debe descargar en la misma ubicación.

  • PublicFolderToMailboxMapGenerator.ps1: este script crea el archivo de asignación de carpeta pública a buzón.

  • PublicFolderToMailboxMapGenerator.strings.psd1: el script de PublicFolderToMailboxMapGenerator.ps1 usa este archivo de soporte técnico y se debe descargar en la misma ubicación.

  • Create-PublicFolderMailboxesForMigration.ps1: este script crea los buzones de carpeta pública de destino para la migración. Además, el script calcula el número de buzones necesarios para administrar la carga de usuarios estimada, en función de las directrices para el número de inicios de sesión de usuario por buzón de carpetas públicas que se recomienda en Límites de las carpetas públicas.

  • Create-PublicFolderMailboxesForMigration.strings.psd1: el script de Create-PublicFolderMailboxesForMigration.ps1 usa este archivo de soporte técnico y se debe descargar en la misma ubicación.

La sección Paso 1: Descargar los scripts de migración proporciona detalles sobre dónde descargar estos scripts. Asegúrese de descargar todos los scripts en la misma ubicación.

Para otras tareas de administración relacionadas con las carpetas públicas, consulte Procedimientos de carpetas públicas.

¿Qué rutas de migración se admiten para las versiones de Exchange Server?

Exchange admite la migración de carpetas públicas desde las siguientes versiones heredadas de Exchange Server:

  • Exchange 2010 SP3 RU8 o versiones posteriores

¿Qué necesita saber antes de empezar?

  • Antes de comenzar, recomendamos leer este tema en su totalidad, ya que para llevar a cabo algunos pasos, se requiere tiempo de inactividad.

  • El servidor de Exchange 2010 debe ejecutar Exchange 2010 SP3 RU8 o versiones posteriores.

  • El número máximo de carpetas públicas que se pueden migrar a Exchange 2016 en una sola migración es de 500 000.

  • Es necesario que sea miembro del grupo de roles de administración de la organización en Exchange 2016. Para obtener información sobre cómo habilitar el grupo de roles de administración de la organización, consulte Administrar grupos de roles.

  • En Exchange 2010, debe ser miembro de los grupos de roles RBAC de administración de servidores o de administración de la organización. Para más información, vea Agregar miembros a un grupo de funciones.

  • Antes de migrar, debe tener en cuenta los Límites de las carpetas públicas.

  • Antes de migrar, mueva todos los buzones de usuario a Exchange 2016, ya que los usuarios con buzones de Exchange 2010 no tendrán acceso a carpetas públicas en Exchange 2016. Para obtener más información, consulte Movimientos de buzón en Exchange Server.

  • Una vez que haya completado la migración, si desea que los remitentes externos envíen correo a las carpetas públicas migradas habilitadas para correo, se debe conceder al menos el permiso Crear elementos al usuario Anónimo. Si no realiza esta acción, los remitentes externos recibirán una notificación de error de entrega y no se entregarán los mensajes a la carpeta pública migrada habilitada para correo. Para leer más acerca de cómo establecer permisos en el usuario Anónimo, consulte Habilitar o deshabilitar el correo para una carpeta pública.

  • Debe usar un único lote de migración para migrar todos los datos de la carpeta pública. Exchange permite crear solo un lote de migración a la vez. Si intenta crear más de un lote de migración simultáneamente, el resultado será un error.

  • Para obtener información acerca de los métodos abreviados de teclado aplicables a los procedimientos de este tema, consulte Métodos abreviados de teclado en el Centro de administración de Exchange.

Importante

Antes de comenzar la migración, asegúrese de migrar el buzón de arbitraje al servidor de Exchange de destino. De lo contrario, el lote de migración se bloqueará en el estado De inicio . Para identificar el buzón de correo de arbitraje de migración, ejecute el siguiente cmdlet:
Get-Mailbox -Arbitration -Identity Migration.*

Paso 1: Descarga de los scripts de migración

  1. Descargue todos los scripts y archivos auxiliares desde Scripts de migración de carpetas públicas.

  2. Guarde los scripts en el equipo local en el que ejecutará PowerShell. Por ejemplo, C:\PFScripts. Asegúrese de que todos los scripts se guardan en la misma ubicación.

Paso 2: Preparación para la migración

Siga estos pasos de requisitos previos antes de iniciar la migración.

Pasos previos en el servidor de Exchange 2010

  1. Para fines de comprobación al final de la migración, se recomienda ejecutar primero los siguientes comandos en el servidor de Exchange 2010 para tomar instantáneas de la implementación actual de carpetas públicas:

    • Ejecute el siguiente comando para tomar una instantánea de la estructura de la carpeta de origen original:

      Get-PublicFolder -Recurse | Export-CliXML C:\PFMigration\Legacy_PFStructure.xml
      
    • Ejecute el siguiente comando para tomar una instantánea de las estadísticas de carpetas públicas, como recuento de elementos, tamaño y propietario:

      Get-PublicFolderStatistics | Export-CliXML C:\PFMigration\Legacy_PFStatistics.xml
      
    • Ejecute el siguiente comando para tomar una instantánea de los permisos:

      Get-PublicFolder -Recurse | Get-PublicFolderClientPermission | Select-Object Identity,User -ExpandProperty AccessRights | Export-CliXML C:\PFMigration\Legacy_PFPerms.xml
      
  2. Si el nombre de una carpeta pública contiene una barra diagonal inversa ( \ ), la migración creará las carpetas públicas migradas en la carpeta pública primaria. Antes de migrar, recomendamos cambiar el nombre de las carpetas públicas que tengan una barra diagonal inversa en el nombre.

    Para buscar carpetas públicas en Exchange 2010 que tengan una barra diagonal inversa en el nombre, ejecute el siguiente comando:

    Get-PublicFolderStatistics -ResultSize Unlimited | Where {($_.Name -like "*\*") -or ($_.Name -like "*/*") } | Format-List Name, Identity
    

    Si el resultado devuelve alguna carpeta pública, puede cambiarle el nombre con este comando:

    Set-PublicFolder -Identity <public folder identity> -Name <new public folder name>
    
  3. Para asegurarse de que no haya un registro de una migración correcta anteriormente, ejecute el siguiente comando:

    Get-OrganizationConfig | Format-List PublicFoldersLockedforMigration, PublicFolderMigrationComplete
    

    Una migración correcta anteriormente establecerá las propiedades PublicFoldersLockedforMigration o PublicFolderMigrationComplete en el valor True, lo que hará que se produzca un error en la nueva solicitud de migración.

    Si los valores de propiedad son True, ejecute el siguiente comando para cambiarlos a False:

    Set-OrganizationConfig -PublicFoldersLockedforMigration $false -PublicFolderMigrationComplete $false
    

    Nota:

    Después de restablecer estas propiedades, debe esperar a que Exchange detecte la nueva configuración. Esta acción puede tardar hasta dos horas en completarse.

Para obtener información detallada acerca de la sintaxis y los parámetros, consulte los siguientes temas:

Pasos de requisitos previos en el servidor de Exchange 2016

  1. Asegúrese de que no hay ninguna solicitud de migración de carpetas públicas existente. Si la hay, desactívela o se producirá un error en su propia solicitud de migración. Este paso no es necesario en todos los casos; solo es necesario si piensa que puede haber una solicitud de migración existente en la canalización.

    Importante

    Antes de quitar una solicitud de migración, es importante comprender por qué ya había una. La ejecución del siguiente comando determinará el momento en el que se realizó una solicitud anterior y ayudará a diagnosticar cualquier problema que haya ocurrido. Es posible que deba comunicarse con otros administradores de la organización para determinar por qué se realizó el cambio.

    • Ejecute el siguiente comando para detectar las solicitudes de migración por lotes existentes:

      $batch = Get-MigrationBatch | ?{$_.MigrationType.ToString() -eq "PublicFolder"}
      
    • Ejecute el siguiente comando para quitar las solicitudes de migración por lotes de carpetas públicas existentes.

      $batch | Remove-MigrationBatch -Confirm:$false
      
  2. Asegúrese de que no existan carpetas públicas ni buzones de carpetas públicas en los servidores de Exchange 2016 mediante la ejecución del siguiente comando:

    Get-Mailbox -PublicFolder
    

    Si el comando no devuelve ningún buzón de carpetas públicas, continúe con el Paso 3: Generación de los archivos .csv. Si el comando devuelve alguna carpeta pública, ejecute el siguiente comando para comprobar si hay alguna carpeta pública:

    Get-PublicFolder
    

    Si tiene carpetas públicas, ejecute los siguientes comandos para quitarlas. Asegúrese de haber guardado toda la información que estaba en las carpetas públicas.

    Nota:

    Se eliminará definitivamente toda la información contenida en las carpetas públicas cuando se eliminen.

    Get-Mailbox -PublicFolder | Where {$_.IsRootPublicFolderMailbox -eq $false} | Remove-Mailbox -PublicFolder -Force -Confirm:$false
    
    Get-Mailbox -PublicFolder | Remove-Mailbox -PublicFolder -Force -Confirm:$false
    

Para obtener información detallada acerca de la sintaxis y los parámetros, consulte los siguientes temas:

Paso 3: Generación de los archivos .csv

  1. En el servidor de Exchange 2010, ejecute el Export-PublicFolderStatistics.ps1 script para crear el archivo de asignación de tamaño de nombre de carpeta a carpeta. Este script debe ejecutarse mediante un administrador local. El archivo tendrá dos columnas: FolderName y FolderSize. Los valores de la columna FolderSize se mostrarán en bytes. Por ejemplo, \PublicFolder01,10000.

    .\Export-PublicFolderStatistics.ps1 <Folder to size map path> <FQDN of source server>
    
    • FQDN of source server equivale al nombre de dominio completo del servidor de buzones de correo en el que se hospeda la jerarquía de la carpeta pública.

    • La ruta de acceso de mapa de carpeta a tamaño es igual al nombre de archivo y la ruta de acceso en una carpeta compartida local o de red donde desea guardar el archivo .csv. En un punto posterior de este tema deberá tener acceso a este archivo desde el servidor de Exchange 2016. Si especifica solo el nombre del archivo, el archivo se generará en el directorio actual de PowerShell en el equipo local.

    Ejemplo 1

    En el ejemplo siguiente se exportan las estadísticas de carpetas públicas a un archivo denominado PFStats.csv en la misma carpeta desde la que se ejecuta el script:

    .\Export-PublicFolderStatistics.ps1 -ExportFile PFStats.csv -PublicFolderServer bat2exch1
    

    Ejemplo 2

    En el ejemplo siguiente se exportan las estadísticas de carpetas públicas a un archivo denominado PFStats.csv en la carpeta compartida de red denominada Data on server Exch2:

    .\Export-PublicFolderStatistics.ps1 -ExportFile \\Exch2\data\PFStats.csv -PublicFolderServer exch1
    
  2. Ejecute el PublicFolderToMailboxMapGenerator.ps1 script para crear el archivo de asignación de carpeta a buzón público. Este archivo se usa para calcular el número correcto de buzones de carpetas públicas del servidor de buzones de Exchange 2016.

    Nota:

    Si el nombre de una carpeta pública contiene una barra diagonal inversa ****, las carpetas públicas se crearán en la carpeta pública primaria. Se recomienda que revise el archivo .csv y edite todos los nombres que contienen una barra diagonal inversa.

    .\PublicFolderToMailboxMapGenerator.ps1 <Maximum mailbox size in bytes> <Folder to size map path> <Folder to mailbox map path>
    
    • Maximum mailbox size in bytes equivale al tamaño máximo que quiere establecer para los nuevos buzones de carpetas públicas. Cuando especifique esta configuración, asegúrese de permitir la expansión para que el buzón de carpetas públicas tenga espacio para aumentar su tamaño.

    • La ruta de acceso de mapa de carpeta a tamaño es igual a la ruta de acceso completa del archivo .csv que creó al ejecutar el Export-PublicFolderStatistics.ps1 script.

    • Folder to mailbox map path equivale al nombre de archivo y la ruta del archivo .csv de carpeta a buzón de correo que creará con este paso. Si especifica solo el nombre del archivo, el archivo se generará en el directorio actual de PowerShell en el equipo local.

Paso 4: Crear buzones de carpetas públicas en Exchange 2016

Ejecute el siguiente comando para crear el buzón de carpetas públicas de destino. El script creará un buzón de correo de destino para cada buzón en el archivo .csv que generó anteriormente en el paso 3 mediante la ejecución del PublicFoldertoMailboxMapGenerator.ps1 script.

.\Create-PublicFolderMailboxesForMigration.ps1 -FolderMappingCsv Mapping.csv -EstimatedNumberOfConcurrentUsers:<estimate>

Mapping.csv es el archivo generado por el script en el PublicFoldertoMailboxMapGenerator.ps1 paso 3. El número estimado de conexiones de usuario simultáneas que exploran una jerarquía de carpetas públicas suele ser menor que el número total de usuarios de una organización.

Paso 5: Inicio de la solicitud de migración

Después de crear la solicitud de migración por lotes en el Shell de administración de Exchange, puede ver las solicitudes y administrarlas en el Centro de administración de Exchange (EAC).

  1. En el servidor de Exchange 2016, ejecute el siguiente comando:

    New-MigrationBatch -Name PFMigration -SourcePublicFolderDatabase (Get-PublicFolderDatabase -Server <Source server name>) -CSVData ([System.IO.File]::ReadAllBytes('<Folder to mailbox map path>')) -NotificationEmails <email addresses for migration notifications>
    

    El NotificationEmails parámetro es opcional.

  2. Inicie la migración en el EAC o en el Shell de administración de Exchange.

    • En el Shell de administración de Exchange, ejecute el siguiente comando:

      Start-MigrationBatch PFMigration
      
    • En el EAC:

      1. Inicie sesión en Exchange Online y abra el EAC.

      2. Vaya aMigración de destinatarios>.

      3. Seleccione el lote de migración que acaba de crear y, a continuación, haga clic en el botón Inicio.

      En el EAC, la columna Estado mostrará el estado inicial del lote como Creado. El estado cambia a Sincronizando durante la migración. Una vez completada la solicitud de migración, el estado será Sincronizado. Haga doble clic en un lote para ver el estado de los buzones individuales dentro del lote. Los trabajos de buzón comienzan con el estado En cola. Cuando el trabajo comienza, el estado es Sincronización y, una vez InitialSync completado, el estado se mostrará Sincronizado.

Puede ver y administrar el progreso y la finalización de la migración en la pestañaMigración de destinatarios> del EAC.

Dado que el cmdlet New-MigrationBatch inicia una solicitud de migración de buzón para cada buzón de carpeta pública, puede ver el estado de estas solicitudes mediante la página de migración del buzón en el EAC y puede crear informes de migración que se pueden enviar por correo electrónico.

  1. Inicie sesión en Exchange Online y abra el EAC.

  2. Vaya aMigración de destinatarios>.

  3. Seleccione la solicitud de migración que acaba de crear y, a continuación, haga clic en Ver detalles en el panel Detalles .

Para obtener información detallada acerca de la sintaxis y los parámetros, consulte los siguientes temas:

Paso 6: Bloquear las carpetas públicas en el servidor de Exchange 2010 para la migración final (se requiere tiempo de inactividad)

Hasta este punto de la migración, los usuarios han podido obtener acceso a las carpetas públicas. Los pasos siguientes cerrarán la sesión de los usuarios de las carpetas públicas de Exchange 2010 y bloquearán las carpetas mientras la migración completa su sincronización final. Los usuarios no podrán tener acceso a las carpetas públicas durante este proceso. Además, cualquier correo enviado a carpetas públicas habilitadas para correo se colocará en cola y no se entregará hasta que haya finalizado la migración de dichas carpetas públicas.

Antes de ejecutar el PublicFoldersLockedForMigration comando como se describe a continuación, asegúrese de que todos los trabajos están en estado Sincronizado . Para ello, ejecute el Get-PublicFolderMailboxMigrationRequest comando . Continúe con este paso solo después de comprobar que todos los trabajos están en estado Sincronizado .

En el servidor de Exchange 2010, ejecute el siguiente comando para bloquear las carpetas públicas para su finalización.

Set-OrganizationConfig -PublicFoldersLockedForMigration:$true

Para obtener información más detallada acerca de la sintaxis y los parámetros, consulte Set-OrganizationConfig.

Si su organización tiene varias bases de datos de carpetas públicas, deberá esperar hasta que se complete la replicación de carpetas públicas para confirmar que todas las bases de datos de carpetas públicas han seleccionado el valor de propiedad PublicFoldersLockedForMigration y que los cambios pendientes realizados recientemente en las carpetas han convergido en toda la organización. Esto puede tardar varias horas.

Paso 7: Finalizar la migración de carpetas públicas (tiempo de inactividad necesario)

Primero, ejecute el siguiente cmdlet para cambiar el tipo de implementación de Exchange 2016 a Remoto:

Set-OrganizationConfig -PublicFoldersEnabled Remote

A continuación, puede efectuar la migración de carpetas públicas ejecutando el comando siguiente:

Complete-MigrationBatch PFMigration

También puede completar la migración en el EAC haciendo clic en Completar este lote de migración.

Cuando se complete la migración, Exchange realizará una sincronización final entre el servidor de Exchange 2010 y Exchange 2016. Si la sincronización final es correcta, las carpetas públicas del servidor de Exchange 2016 se desbloquearán y el estado del lote de migración cambiará a Completando y después a Completado. Es habitual que el lote de migración tarde unas horas antes de que su estado cambie de Sincronizado a Completado, momento en el que se iniciará la sincronización final.

Nota:

Si por algún motivo el archivo por lotes de migración no finaliza (el valor de la propiedad PublicFolderMigrationComplete es False) reinicie el Almacén de información (IS) en el servidor de Exchange 2010.

Paso 8: Prueba y desbloqueo de la migración de carpetas públicas

Después de completar la migración de carpetas públicas, debe ejecutar la prueba siguiente para asegurarse de que dicha migración se realizó correctamente. Así podrá probar la jerarquía de carpetas públicas migradas antes de pasar a utilizar carpetas públicas de Exchange 2016.

  1. En PowerShell, ejecute el siguiente comando para asignar algunos buzones de prueba para usar cualquier buzón de carpetas públicas migrado recientemente como buzón de carpetas públicas predeterminado.

    Set-Mailbox -Identity <Test User> -DefaultPublicFolderMailbox <Public Folder Mailbox Identity>
    
  2. Inicie sesión en Outlook 2007 o versiones posteriores con el usuario de prueba identificado en el paso anterior y luego realice las pruebas siguientes para las carpetas públicas:

    • Vea la jerarquía.

    • Compruebe los permisos.

    • Cree y elimine carpetas públicas.

    • Publique contenido en una carpeta pública y elimine contenido de ella.

  3. Si tiene algún problema, vea Revertir la migración más adelante en este mismo tema. Si el contenido y la jerarquía de las carpetas públicas es aceptable y funcionan correctamente, ejecute el comando siguiente para desbloquear las carpetas para otros usuarios.

    Get-Mailbox -PublicFolder | Set-Mailbox -PublicFolder -IsExcludedFromServingHierarchy $false
    

    Importante

    No use el parámetro IsExcludedFromServingHierarchy una vez completada la validación de la migración inicial, ya que el servicio de equilibrio de carga automatizado usa este parámetro para Exchange.

  4. En el servidor de Exchange 2010, ejecute el siguiente comando para indicar que se ha completado la migración de carpetas públicas:

    Set-OrganizationConfig -PublicFolderMigrationComplete:$true
    
  5. Después de comprobar que la migración se haya completado, ejecute el comando siguiente en el servidor de Exchange 2016.

    Set-OrganizationConfig -PublicFoldersEnabled Local
    
  6. Finalmente, si desea que los remitentes externos envíen correo a las carpetas públicas migradas habilitadas para correo, se debe conceder al menos el permiso Crear elementos al usuario Anónimo. Si no realiza esta acción, los remitentes externos recibirán una notificación de error de entrega y no se entregarán los mensajes a la carpeta pública migrada habilitada para correo.

    Puede usar el Shell de administración de Exchange o Outlook para establecer los permisos en el usuario anónimo. Para leer más sobre cómo establecer permisos en el usuario Anónimo, consulte Habilitar o deshabilitar el correo para una carpeta pública.

¿Cómo saber si el proceso se ha completado correctamente?

En Paso 2: Preparación para la migración, se le indicó que tomara instantáneas de la estructura de carpetas públicas, las estadísticas y los permisos antes de que comenzara la migración. Los pasos siguientes le ayudarán a comprobar que la migración de carpetas públicas se realizó correctamente tomando las mismas instantáneas una vez completada la migración. A continuación, puede comparar los datos de ambos archivos para comprobar que se han realizado correctamente.

  1. Ejecute el siguiente comando para tomar una instantánea de la nueva estructura de carpetas.

    Get-PublicFolder -Recurse | Export-CliXML C:\PFMigration\Cloud_PFStructure.xml
    
  2. Ejecute el siguiente comando para tomar una instantánea de la estadística de carpetas públicas, como recuento de elementos, tamaño y propietario.

    Get-PublicFolderStatistics -ResultSize Unlimited | Export-CliXML C:\PFMigration\Cloud_PFStatistics.xml
    
  3. Ejecute el siguiente comando para tomar una instantánea de los permisos.

    Get-PublicFolder -Recurse | Get-PublicFolderClientPermission | Select-Object Identity,User -ExpandProperty AccessRights | Export-CliXML  C:\PFMigration\Cloud_PFPerms.xml
    

Eliminación de bases de datos de carpetas públicas de los servidores de Exchange 2010

Una vez completada la migración y comprobado que las carpetas públicas de Exchange 2016 o Exchange 2019 funcionan según lo previsto, debe quitar las bases de datos de carpetas públicas en los servidores de Exchange 2010.

Para más información sobre cómo quitar las bases de datos de carpetas públicas de los servidores de Exchange 2010, vea Quitar bases de datos de carpetas públicas.

Revertir la migración

Si tiene problemas con la migración y necesita reactivar las carpetas públicas de Exchange 2010, siga estos pasos.

Precaución

Si revierte la migración a los servidores de Exchange 2010, perderá cualquier correo electrónico que se haya enviado a carpetas públicas habilitadas para correo o contenido que se haya publicado en carpetas públicas en Exchange 2016 o Exchange 2019 después de la migración. Para guardar este contenido, debe exportar el contenido de la carpeta pública a un archivo .pst y, a continuación, importarlo a las carpetas públicas de Exchange 2010 cuando se complete la reversión.

  1. En el servidor de Exchange 2010, ejecute el siguiente comando para desbloquear las carpetas públicas migradas. Este proceso puede tardar varias horas.

    Set-OrganizationConfig -PublicFoldersLockedForMigration $false
    
  2. En el servidor de Exchange 2016, ejecute los siguientes comandos para quitar los buzones de carpetas públicas.

    Get-Mailbox -PublicFolder | Where {$_.IsRootPublicFolderMailbox -eq $false} | Remove-Mailbox -PublicFolder -Force -Permanent $true -Confirm:$false
    
    Get-Mailbox -PublicFolder | Remove-Mailbox -PublicFolder -Force -Permanent $true -Confirm:$false
    
  3. En el servidor de Exchange 2010, ejecute el siguiente comando para establecer el valor de propiedad PublicFolderMigrationComplete en False.

    Set-OrganizationConfig -PublicFolderMigrationComplete $false
    
  4. En el servidor de Exchange 2016, ejecute el siguiente comando para quitar los buzones de carpetas públicas.

    Set-OrganizationConfig -PublicFoldersEnabled Remote -RemotePublicFolderMailboxes <ProxyMailbox1>,<ProxyMailbox2>,...,<ProxyMailboxN>
    

    Para obtener más información sobre los buzones de carpetas públicas remotos que debe usar con este comando, consulte Configuración de carpetas públicas heredadas donde los buzones de usuario están en servidores de Exchange 2013.