Share via


Preparación de buzones para movimientos entre bosques mediante el Shell de administración de Exchange

Exchange Server admite movimientos y migraciones de buzones mediante los cmdlets New-MoveRequest y New-MigrationBatch del Shell de administración de Exchange. También puede mover el buzón en el Centro de administración de Exchange (EAC).

  • En Exchange 2016, puede mover un buzón de Exchange 2010, Exchange 2013 o Exchange 2016 de un bosque de Exchange de origen a un bosque de Exchange 2016 de destino.

  • En Exchange 2019, puede mover un buzón de Exchange 2013, Exchange 2016 o Exchange 2019 de un bosque de Exchange de origen a un bosque de Exchange 2019 de destino.

Para ejecutar los cmdlets New-MoveRequest y New-MigrationBatch, debe existir un usuario de correo en el bosque de Exchange de destino y el usuario de correo debe contar con un conjunto mínimo de atributos de Active Directory obligatorios.

El script de Ejemplo de Exchange PowerShell descrito en este tema admite esta tarea mediante la sincronización de usuarios de buzones de correo de un bosque de origen de Exchange con bosques de destino de Exchange como usuarios de correo (también conocidos como usuarios habilitados para correo). El script copia los atributos de Active Directory de los usuarios del buzón del bosque de origen en el bosque de destino y, a continuación, usa el cmdlet Update-Recipient para convertir los objetos de destino en usuarios de correo.

Para obtener más información sobre cómo usar y escribir scripts, consulte Acerca de los scripts. Para obtener más información acerca de cómo preparar para traslados entre bosques, vea Preparar los buzones para las solicitudes de movimiento entre bosques.

¿Está buscando otras tareas de administración relacionadas con las solicitudes remotas de traslado? Consulte Administración de movimientos de buzones locales en Exchange Server.

¿Qué necesita saber antes de empezar?

  • Busque el script de Prepare-MoveRequest.ps1 en %ExchangeInstallPath%Scripts. De forma predeterminada, %ExchangeInstallPath% es C:\Archivos de programa\Microsoft\Exchange Server\V15\ (tenga en cuenta el final '\').

  • Para ejecutar el script de ejemplo, necesita lo siguiente:

    • Un bosque de origen de Exchange (donde reside actualmente el buzón de correo).

      • Para los bosques de destino de Exchange 2016, el buzón de origen puede estar en Exchange 2010, Exchange 2013 o Exchange 2016.

      • Para los bosques de destino de Exchange 2019, el buzón de origen puede estar en Exchange 2013, Exchange 2016 o Exchange 2019.

    • Un bosque de destino con Exchange 2016 o Exchange 2019 instalado (al que se moverá el buzón).

Sugerencia

¿Problemas? Solicite ayuda en los foros de Exchange. Visite los foros en Exchange Server, Exchange Online, o Exchange Online Protection.

Usar el script Prepare-MoveRequest.ps1 para preparar buzones de correo para traslados entre bosques

Ejecute el script desde el Shell de administración de Exchange en un servidor de buzones en el bosque de Exchange 2016 o Exchange 2019 de destino. La secuencia de comandos copia los atributos del buzón de correo del bosque de origen.

Para asignar una credencial de autenticación específica para el controlador de dominio del bosque remoto, primero debe ejecutar el cmdlet Get-Credential de Windows PowerShell y almacenar la entrada de usuario en una variable temporal. Cuando ejecuta el cmdlet Get-Credential, este solicita el nombre de usuario y la contraseña de la cuenta usada durante la autenticación con el controlador de dominio del bosque remoto. A continuación, puede utilizar la variable temporal en el script Prepare-MoveRequest.ps1. Para obtener más información sobre el cmdlet Get-Credential, vea Get-Credential.

Nota:

Asegúrese de utilizar dos credenciales separadas para el bosque local y remoto al llamar esta secuencia de comandos.

  1. Ejecute los siguientes comandos para obtener las credenciales del bosque remoto y del bosque local.

    $LocalCredentials = Get-Credential
    
    $RemoteCredentials = Get-Credential
    
  2. Ejecute los siguientes comandos para pasar la información de credenciales a los parámetros LocalForestCredential y RemoteForestCredential del script "Prepare-MoveRequest.ps1".

    Prepare-MoveRequest.ps1 -Identity JohnSmith@Fabrikan.com -RemoteForestDomainController DC001.Fabrikam.com -RemoteForestCredential $RemoteCredentials -LocalForestDomainController DC001.Contoso.com -LocalForestCredential $LocalCredentials
    

Conjunto de parámetros del script

La siguiente tabla describe el parámetro establecido para el script.

Parámetro Obligatorio Descripción
Identity Obligatorio El parámetro Identity identifica de forma única un buzón en el bosque de origen. La identidad puede ser cualquiera de los siguientes valores: Nombre común (CN), Alias, propiedad proxyAddress, propiedad objectGuid o propiedad DisplayName
RemoteForestCredential Obligatorio El parámetro RemoteForestCredential especifica el administrador que tiene permisos para copiar datos del bosque de origen de Active Directory.
RemoteForestDomainController Obligatorio El parámetro RemoteForestDomainController especifica un controlador de dominio en el bosque de origen donde reside el buzón.
DisableEmailAddressPolicy Opcional El parámetro DisableEmailAddressPolicy especifica si se debe deshabilitar la directiva de direcciones Email (EAP) al crear un objeto MailUser en el bosque de destino.
Cuando especifica este parámetro, no se aplicará la EAP en el bosque de destino.
Nota: Al especificar este parámetro, el objeto MailUser no tendrá la asignación de direcciones de correo electrónico en el dominio del bosque local marcado. Normalmente, la EAP marca esto.
LinkedMailUser Opcional El modificador LinkedMailUser especifica si se va a crear un objeto MailUser vinculado en el bosque local para el usuario del buzón en el bosque remoto.
Si se proporciona el conmutador, el script crea un objeto MailUser de destino vinculado al buzón de correo de origen. Si se omite el conmutador, el script crea un objeto MailUser de destino normal.
LocalForestCredential Opcional El parámetro LocalForestCredential especifica el administrador con permisos para escribir datos en el bosque de destino de Active Directory.
Se recomienda especificar explícitamente este parámetro para evitar problemas de permisos de Active Directory.
Si el bosque remoto y el bosque local tienen una relación de confianza configurada, no use la cuenta de usuario del bosque remoto como credencial del bosque local, aunque la cuenta del usuario remoto puede tener permiso para modificar Active Directory en el bosque local.
LocalForestDomainController Opcional El parámetro LocalForestDomainController especifica un controlador de dominio en el bosque de destino donde se creará el usuario de correo.
Le recomendamos que especifique este parámetro para evitar problemas de demora de replicación en el controlador de dominio en el bosque local que podrían ocurrir si se selecciona el controlador de dominio aleatorio.
MailboxDeliveryDomain Opcional El parámetro MailboxDeliveryDomain especifica un dominio autoritativo del bosque de origen para que el script pueda seleccionar la propiedad proxyAddress del usuario del buzón de correo de origen correcto como la propiedad targetAddress del usuario de correo de destino.
De forma predeterminada, la dirección SMTP principal del usuario del buzón de correo de origen se establece como la propiedad targetAddress del usuario de correo de destino.
OverWriteLocalObject Opcional El parámetro OverWriteLocalObject se usa para los usuarios creados por la herramienta de migración de Active Directory. Las propiedades se copian del contacto de correo existente al nuevo usuario de correo creado. Sin embargo, después de esta copia, el script también copia las propiedades del usuario del bosque de origen al nuevo usuario de correo creado.
TargetMailUserOU Opcional El parámetro TargetMailuserOU especifica la unidad organizativa (OU) en la que se creará el usuario de correo de destino.
UseLocalObject Opcional El parámetro UseLocalObject especifica si se va a convertir el objeto local existente en el usuario de correo de destino necesario si el script detecta un objeto en el bosque local que entra en conflicto con el usuario de correo que se va a crear.

Ejemplos

Esta sección contiene varios ejemplos de cómo usar el script Prepare-MoveRequest.ps1.

Ejemplo: Usuario de correo vinculado único

En este ejemplo se aprovisiona un único usuario de correo vinculado en el bosque local, cuando hay confianza de bosque entre el bosque remoto y el bosque local.

  1. Ejecute los siguientes comandos para obtener las credenciales del bosque remoto y del bosque local.

    $LocalCredentials = Get-Credential
    
    $RemoteCredentials = Get-Credential
    
  2. Ejecute el siguiente comando para pasar la información de credenciales a los parámetros LocalForestCredential y RemoteForestCredential del script "Prepare-MoveRequest.ps1".

    Prepare-MoveRequest.ps1 -Identity JamesAlvord@Contoso.com -RemoteForestDomainController DC001.Fabrikam.com -RemoteForestCredential $RemoteCredentials -LocalForestDomainController DC001.Contoso.com -LocalForestCredential $LocalCredentials -LinkedMailUser
    

Ejemplo: Canalización

Este ejemplo es compatible con la canalización si se proporciona una lista de las identidades de buzón.

  1. Ejecuta el siguiente comando.

    $UserCredentials = Get-Credential
    
  2. Ejecute el siguiente comando para pasar la información de credenciales al parámetro RemoteForestCredential en el script de Prepare-MoveRequest.ps1.

    "IanP@Contoso.com", "JoeAn@Contoso.com" | Prepare-MoveRequest.ps1 -RemoteForestDomainController DC001.Fabrikam.com -RemoteForestCredential $UserCredentials
    

Ejemplo: Uso de un archivo .csv para crear usuarios de correo de forma masiva

Puede generar un archivo de .csv que contenga una lista de identidades de buzón del bosque de origen, lo que le permite canalizar el contenido de este archivo en el script para crear de forma masiva los usuarios de correo de destino.

Por ejemplo, el contenido del archivo .csv puede ser:

Identity
Ian@contoso.com
John@contoso.com
Cindy@contoso.com

En este ejemplo se llama a un archivo .csv para crear de forma masiva los usuarios de correo de destino.

  1. Ejecute el siguiente comando para obtener las credenciales del bosque remoto.

    $UserCredentials = Get-Credential
    
  2. Ejecute el comando siguiente para pasar la información de credenciales al parámetro RemoteForestCredential del script Prepare-MoveRequest.ps1.

    Import-Csv Test.csv | Prepare-MoveRequest.ps1 -RemoteForestDomainController DC001.Fabrikam.com -RemoteForestCredential $UserCredentials
    

Comportamiento del script por objeto de destino

En esta sección se describe cómo se comporta el script en relación con los varios escenarios de objetos de destino.

Duplicar objetos habilitados para correo de destino

Cuando el script intenta crear un usuario de correo de destino a partir del usuario de buzón de correo de origen y detecta un objeto local duplicado habilitado para correo, usa la siguiente lógica:

  • Si el atributo masterAccountSid del usuario del buzón de origen es igual al atributo objectSid o masterAccountSid de cualquier objeto de destino:

    • Si el objeto de destino no está habilitado para correo, el script devuelve un error porque el script no admite la conversión de un objeto que no está habilitado para correo a un usuario de correo.

    • Si el objeto de destino está habilitado para correo, el objeto de destino es un duplicado.

  • Si la dirección en las propiedades proxyAddress (sólo smtp/x500) del usuario del buzón de correo de origen es igual a una dirección de las propiedades proxyAddress (sólo smtp/x500) de un objeto de destino, entonces el objeto de destino es un duplicado.

La secuencia de comandos le avisa al usuario acerca de los objetos duplicados.

Si el objeto habilitado para correo de destino es un usuario de correo o un contacto de correo, lo que es más probable que se cree mediante una implementación de sincronización de lista global de direcciones (GAL) entre bosques, puede volver a ejecutar el script con el parámetro UseLocalObject para usar el objeto habilitado para correo de destino para la migración de buzones.

Usuario de correo

Si el objeto de destino es un usuario de correo, el script copia los siguientes atributos del usuario del buzón de correo de origen al usuario de correo de destino:

  • msExchMailboxGUID

  • msExchArchiveGUID

  • msExchArchiveName

Si se establece el parámetro LinkedMailUser , el script copia el atributo objectSid / masterAccountSid de origen.

Contacto de correo

Si el objeto de destino es un contacto de correo, el script elimina el contacto existente y copia todos sus atributos en un nuevo usuario de correo. La secuencia de comandos copia también los siguientes atributos del usuario de buzón de correo de origen:

  • msExchMailboxGUID

  • msExchArchiveGUID

  • msExchArchiveName

  • Samaccountname

  • userAccountControl (establecido en 514; equivalente a 0x202, ACCOUNTDISABLE | NORMAL_ACCOUNT)

  • userPrincipalName

Si se establece el parámetro LinkedMailUser , el script copia el atributo objectSid / masterAccountSid de origen.

Atributo "LegacyExchangeDN"

Cuando se llama al cmdlet Update-Recipient para convertir el objeto de destino en un usuario de correo, se genera un nuevo atributo LegacyExchangeDN para el usuario de correo de destino. El script copia el atributo LegacyExchangeDN del usuario de correo de destino como una dirección x500 en las propiedades proxyAddress del usuario del buzón de origen.