Preparar buzones para moverlos entre bosques con el script Prepare-MoveRequest.ps1 en el Shell

Se aplica a: Exchange Server 2013

Resumen: Obtenga información sobre cómo administrar movimientos y migraciones de buzones entre bosques en Exchange 2013 mediante el script de Prepare-MoveRequest.ps1 en el Shell de administración de Exchange.

Microsoft Exchange 2013 admite migraciones y movimientos de buzones de correo mediante los cmdlets New-MoveRequest y New-MigrationBatch. También puede mover el buzón a través del Centro de administración de Exchange (EAC). Puede mover un buzón de Exchange 2010 o Exchange 2013 de un bosque de Exchange de origen a un bosque de Exchange 2013 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 Windows PowerShell que se describe en este tema admite esta tarea mediante la sincronización de usuarios de buzones de correo desde un bosque de origen de Exchange 2013 hasta bosques de destino de Exchange 2013 como usuarios habilitados para correo. El script copia los atributos de Active Directory de los usuarios de buzón de correo en el bosque de origen hacia el bosque de destino y, a continuación, usa el cmdlet Update-Recipient para convertir los objetos de destino en usuarios habilitados para correo.

Para obtener más información acerca de cómo utilizar y escribir secuencias de comandos, vea Scripting with the Exchange Management Shell. 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? Vea Administración de movimientos locales.

¿Qué necesita saber antes de empezar?

  • Busque el script en la siguiente ubicación: %ExchangeInstallPath%Scripts

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

    • Un bosque de origen de Exchange, donde reside actualmente el buzón. Puede ser un buzón de Exchange 2010 o Exchange 2013.

    • El bosque de destino con Exchange 2013 instalado, donde se trasladará el buzón de correo.

Sugerencia

¿Problemas? Solicite ayuda en los foros de Exchange. Visite los foros en Exchange Server.

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

Ejecutar el script desde el Shell en un rol de servidor que ejecute Exchange 2013 en el bosque Exchange 2013 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.

Conjunto de parámetros del script Prepare-MoveRequest.ps1

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 una de las siguientes:
  • Nombre común (CN)
  • Alias
  • Propiedad proxyAddress
  • Propiedad objectGuid
  • 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 habilitado para 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 habilitado para correo de destino.

De manera predeterminada, la dirección SMTP primaria del usuario del buzón de correo de origen está configurada como la propiedad targetAddress del usuario habilitado para 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 habilitado para correo de destino.
UseLocalObject Opcional El parámetro UseLocalObject especifica si se debe convertir el objeto local existente al usuario habilitado para correo del correo de destino, en caso de que el script detecte un objeto en el bosque local que entre en conflicto con el usuario habilitado para correo que se necesite crear.

Ejemplos

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

Ejemplo: Único usuario de correo vinculado

El siguiente ejemplo aprovisiona un usuario habilitado para correo vinculado y único en el bosque local, en caso de que la confianza del bosque se encuentre entre el bosque remoto y el 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 comando siguiente para pasar la información de credenciales al parámetro RemoteForestCredential del script Prepare-MoveRequest.ps1.

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

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

Puede generar un archivo .csv que contenga una lista de identidades de buzón de correo del bosque de origen, que le permita canalizar el contenido de este archivo a la secuencia de comandos para crear de forma masiva los usuarios habilitados para correo.

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

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

En este ejemplo, se le solicita a un archivo .csv crear de forma masiva los usuarios de destino habilitados para correo.

  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 la secuencia de comandos intenta crear un usuario habilitado para correo de destino desde el usuario de buzón de correo de origen y detecta un objeto habilitado para correo local duplicado, utiliza 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 devolverá un error, ya que no admite la conversión de un objeto no habilitado para correo con un usuario habilitado para 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 contacto o un usuario habilitado para correo, que más probablemente será creado por una implementación de sincronización de lista de direcciones global (GAL) de bosque cruzado (basado en Identity Lifecycle Management 2007 Service Pack 1), el usuario podrá ejecutar el script nuevamente con el parámetro UseLocalObject para utilizar el objeto habilitado para correo de destino de migración del buzón de correo.

Usuario habilitado para correo electrónico

Si el objeto de destino es un usuario habilitado para correo, la secuencia de comando copiará los siguientes atributos del usuario del buzón de correo de origen al usuario habilitado para correo de destino:

  • msExchMailboxGUID
  • msExchArchiveGUID
  • msExchArchiveName

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

Contacto habilitado para correo

Si el objeto de destino es un contacto habilitado para correo, la secuencia de comando borrará el contacto existente y copiará todos los atributos a un nuevo usuario habilitado para 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 solicita al cmdlet Update-Recipient convertir el objeto de destino a un usuario habilitado para correo, se generará un nuevo atributo LegacyExchangeDN para el usuario habilitado para correo de destino. La secuencia de comandos copia el atributo LegacyExchangeDN del usuario habilitado para correo de destino como una dirección x500 a las propiedades proxyAddress del usuario de buzón de correo de origen.