Compartir a través de


Uso de PowerShell para mover buzones

Puede usar PowerShell para mover buzones, además del Centro de Administración de Exchange (EAC).

Traslado de buzones locales a una organización Exchange Online

Para mover un buzón local a Exchange Online mediante PowerShell, siga estos pasos:

  1. Conectarse a Exchange Online PowerShell: inicie PowerShell como administrador y conéctese a Exchange Online PowerShell mediante la ejecución del siguiente comando:

    PS C:\> Connect-ExchangeOnline
    
  2. Buscar dirección URL del servidor remoto del punto de conexión de migración: obtenga la dirección URL del servidor remoto mediante el cmdlet Get-MigrationEndpoint .

    Get-MigrationEndpoint | Format-List Identity, RemoteServer
    

    Aparece la siguiente salida:

    PS C:\> Get-MigrationEndpoint | Format-List Identity, RemoteServer
    
    Identity     : Hybrid Migration Endpoint - EWS (Default Web Site)
    RemoteServer : <GUID>.resource.mailboxmigration.his.msappproxy.net
    

    Nota:

    El valor RemoteServer de la salida de la sintaxis del comando anterior se genera mediante la ejecución del Asistente para configuración híbrida (HCW).

  3. Copie el valor remoteserver cuando lo necesite en la siguiente parte.

    Nota:

    El valor de RemoteServer que se muestra en la sintaxis de comandos de salida anterior se genera cuando el usuario selecciona Usar topología híbrida moderna de Exchange en la página Topología híbrida .

  4. Creación de una nueva solicitud de traslado para mover buzones de correo principal y de archivo a Exchange Online mediante PowerShell

    • Rellene los detalles siguientes para crear una nueva solicitud de traslado para mover el buzón de correo principal y el buzón de archivo a Exchange Online:

      • Identidad: nombre del buzón o dirección de correo electrónico.
      • RemoteHostName: el servidor remoto que copió en el paso 2.
      • TargetDeliveryDomain: dominio SMTP principal usado para los buzones de Exchange Online organización.
      • RemoteCredential: cuenta de administrador local con privilegios.

      Después de ejecutar el comando, se muestra una solicitud de inicio de sesión de credenciales.

      New-MoveRequest -Identity "Maisha.Lee@contoso.com" -Remote -RemoteHostName "mail.contoso.com" -TargetDeliveryDomain "<domain>.mail.onmicrosoft.com" -RemoteCredential (Get-Credential)
      
    • Rellene la contraseña de las credenciales locales (RemoteCredential).

  5. Mover varios buzones a Exchange Online mediante PowerShell

    • Cree un archivo CSV denominado Users.csv y colóctelo en el directorio C:\migration.

    • Abra el archivo CSV, asigne el nombre EmailAddress a la columna de encabezado y rellene todos los buzones que quiera mover a Exchange Online.

      Captura de pantalla que muestra el ARCHIVO CSV en el que se especifican los detalles de los buzones que se van a mover.

    • Copie el siguiente script y cambie las tres primeras líneas. Después, ejecute el script.

      $Mailboxes = Import-Csv "C:\Migration\Users.csv"
      $RemoteHostName = "mail.contoso.com"
      $TargetDeliveryDomain = "<domain>.mail.onmicrosoft.com"
      $OnPremCred = (Get-Credential)
      
      # Move mailboxes in CSV file to Exchange Online
      foreach ($Mailbox in $Mailboxes) {
      $params = @{
      Identity               = $mailbox.EmailAddress
      Remote                 = $true
      RemoteHostName         = $RemoteHostName
      TargetDeliveryDomain   = $TargetDeliveryDomain
      RemoteCredential       = $OnPremCred
             }
      
      New-MoveRequest @params
      
         }
      
  6. Mover solo el buzón principal a Exchange Online mediante PowerShell

    Hay un escenario en el que la ubicación del buzón de archivo está en Exchange Online y la ubicación del buzón principal está en Exchange local y se ejecuta el siguiente comando:

    $Mailboxes = Import-Csv "C:\Migration\Users.csv"
    $RemoteHostName = "mail.contoso.com"
    $TargetDeliveryDomain = "<domain>.mail.onmicrosoft.com"
    $OnPremCred = (Get-Credential)
    
    # Move mailboxes in CSV file to Exchange Online
    foreach ($Mailbox in $Mailboxes) {
    $params = @{
    Identity               = $mailbox.EmailAddress
    Remote                 = $true
    RemoteHostName         = $RemoteHostName
    TargetDeliveryDomain   = $TargetDeliveryDomain
    RemoteCredential       = $OnPremCred
           }
    
    New-MoveRequest @params
    
       }
    

    El resultado es que recibe el siguiente mensaje de error, que forma parte de la sintaxis de comandos más grande que se muestra después del mensaje de error:

    You must specify the PrimaryOnly parameter
    Target user ‘XXXXXX’ already has an archive mailbox.
    
    PS C:\> New-MoveRequest -Identity "Maisha.Lee@contoso.com" -Remote -RemoteHostName "mail.contoso.com" -TargetDeliveryDomain "<domain>.mail.onmicrosoft.com" -RemoteCredential (Get-Credential)
    You must specify the PrimaryOnly parameter.
    Target user 'Maisha Lee' already has an archive mailbox.
    + CategoryInfo          : NotSpecified: (:) [New-MoveRequest], MailboxReplicationPermanentException
    + FullyQualifiedErrorId : [Server=PAXP190MB1743,RequestId=3f8179c3-aa93-453f-9e14-d824968f34c4,TimeStamp=5/28/2022
    7:19:13 AM] [FailureCategory=Cmdlet-MailboxReplicationPermanentException] FE8B9422,Microsoft.Exchange.Management.
    Migration.MailboxReplication.MoveRequest.NewModernMoveRequest
    + PSComputerName        : outlook.office365.com
    

    Una vez que vea el mensaje de error, realice los pasos siguientes:

    • Agregue el -PrimaryOnly parámetro a la sintaxis del comando anterior para resolver el error al crear una nueva solicitud de movimiento para mover el buzón principal solo a Exchange Online.

    • Rellene los detalles siguientes:

      • Identidad: nombre del buzón o dirección de correo electrónico.
      • RemoteHostName: el servidor remoto que copió en el paso 2.
      • PrimaryOnly: mantenga el valor vacío.
      • TargetDeliveryDomain: dominio SMTP principal usado para los buzones de Exchange Online organización.
      • RemoteCredential: cuenta de administrador local con privilegios.

      Después de ejecutar el comando para una nueva solicitud de movimiento, se muestra una solicitud de inicio de sesión de credenciales como se muestra en la siguiente sintaxis de comandos:

      New-MoveRequest -Identity "Maisha.Lee@contoso.com" -Remote -RemoteHostName "mail.contoso.com" -PrimaryOnly -TargetDeliveryDomain "<domain>.mail.onmicrosoft.com" -RemoteCredential (Get-Credential)
      
    • Rellene la contraseña de las credenciales locales (RemoteCredential).

  7. Mover solo el buzón de archivo a Exchange Online mediante PowerShell

    PS C:\> New-MoveRequest -Identity "Maisha.Lee@contoso.com" -Remote -RemoteHostName "mail.contoso.com" -TargetDeliveryDomain "<domain>.mail.onmicrosoft.com" -RemoteCredential (Get-Credential)
    You must specify the PrimaryOnly parameter.
    Target user 'Maisha Lee' already has an archive mailbox.
    + CategoryInfo          : NotSpecified: (:) [New-MoveRequest], MailboxReplicationPermanentException
    + FullyQualifiedErrorId : [Server=PAXP190MB1743,RequestId=3f8179c3-aa93-453f-9e14-d824968f34c4,TimeStamp=5/28/2022
    7:19:13 AM] [FailureCategory=Cmdlet-MailboxReplicationPermanentException] FE8B9422,Microsoft.Exchange.Management.
    Migration.MailboxReplication.MoveRequest.NewModernMoveRequest
    + PSComputerName        : outlook.office365.com
    
    • Agregue el ArchiveOnly parámetro a la sintaxis del comando anterior para resolver el error al crear una nueva solicitud de movimiento para mover el buzón de archivo solo a Exchange Online.
    • Rellene los detalles siguientes:
      • Identidad: nombre del buzón o dirección de correo electrónico.
      • RemoteHostName: el servidor remoto que copió en el paso 2.
      • ArchiveOnly: mantenga el valor vacío.
      • TargetDeliveryDomain: dominio SMTP principal usado para los buzones de Exchange Online organización.
      • RemoteCredential: cuenta de administrador local con privilegios.

    Después de ejecutar el comando para una nueva solicitud de movimiento, se muestra una solicitud de inicio de sesión de credenciales, como se muestra en la siguiente sintaxis de comandos:

    New-MoveRequest -Identity "Maisha.Lee@contoso.com" -Remote -RemoteHostName "mail.contoso.com" -ArchiveOnly -TargetDeliveryDomain "<domain>.mail.onmicrosoft.com" -RemoteCredential (Get-Credential)
    

    Rellene la contraseña de las credenciales locales (RemoteCredential).

  8. Obtención del estado de movimiento del buzón

    • Obtenga el estado de la solicitud de movimiento del buzón mediante el cmdlet Get-MoveRequest .

      Get-MoveRequest -Identity "Maisha.Lee@contoso.com" | Get-MoveRequestStatistics
      
    • Ejecute el siguiente comando para obtener todas las solicitudes de movimiento del buzón:

      Get-MoveRequest | Get-MoveRequestStatistics
      

      La salida muestra el estado de movimiento del buzón como Estado completado , como se muestra en la captura de pantalla siguiente:

      Captura de pantalla que muestra el comando que permite al usuario obtener el estado de movimiento del buzón.

      Si ese no es el caso y no puede completar la solicitud de traslado del buzón, puede suspender y reanudar la solicitud de traslado.

Mover Exchange Online buzones a una organización local

Para mover un buzón de Exchange Online a la organización local mediante PowerShell, siga estos pasos:

  1. Conectarse a Exchange Online PowerShell: inicie PowerShell como administrador y conéctese a Exchange Online PowerShell mediante la ejecución del siguiente comando:

    PS C:\> Connect-ExchangeOnline
    

    Nota:

    No va a extraer el buzón de Exchange Online al entorno local. De hecho, va a insertar el buzón de Exchange Online en el entorno local. Es por eso que debe conectarse a Exchange Online y ejecutar los comandos desde Exchange Online PowerShell.

  2. Buscar dirección URL del servidor remoto del punto de conexión de migración: obtenga la dirección URL del servidor remoto mediante el cmdlet Get-MigrationEndpoint .

    Get-MigrationEndpoint | Format-List Identity, RemoteServer
    

    Aparece la siguiente salida:

    Identity     : Hybrid Migration Endpoint - EWS (Default Web Site)
    RemoteServer : mail.contoso.com
    

    Nota:

    El valor RemoteServer de la salida de la sintaxis del comando anterior se genera mediante la ejecución del Asistente para configuración híbrida (HCW).

  3. Copie el valor de dirección URL de RemoteServer cuando lo necesite en la siguiente parte.

  4. Creación de una nueva solicitud de traslado para mover buzones principales y de archivo de Exchange Online mediante PowerShell

    • Rellene los detalles siguientes como parte de la creación de una nueva solicitud de traslado para mover el buzón de correo principal y el buzón de archivo de Exchange Online:

      • Identidad: nombre del buzón o dirección de correo electrónico.
      • RemoteTargetDatabase: base de datos de buzones de Exchange local.
      • RemoteHostName: el servidor remoto que copió en el paso 2.
      • TargetDeliveryDomain: dominio SMTP principal usado para los buzones de Exchange Online organización.
      • RemoteCredential: cuenta de administrador local con privilegios.

      El comando que se va a ejecutar para crear una nueva solicitud de movimiento es:

      New-MoveRequest -OutBound -RemoteTargetDatabase "DB01" -RemoteHostName "mail.contoso.com" -TargetDeliveryDomain "contoso.com" -RemoteCredential (Get-Credential)
      
    • Rellene la contraseña de las credenciales locales (RemoteCredential) para la solicitud de inicio de sesión de credenciales que se muestra como se muestra en la siguiente sintaxis de comandos una vez que se ejecuta el comando:

      PS C:\> Get-Mailbox -Identity "Jordy.Twin@contoso.com" | New-MoveRequest -OutBound -RemoteTargetDatabase "DB01" -RemoteHostName "mail.contoso.com" -TargetDeliveryDomain "contoso.com" -RemoteCredential (Get-Credential exoip\administrator)
      
      DisplayName Status TargetDatabase
      ----------- ------ --------------
      Jordy Twin  Queued
      

      Después de ejecutar el comando anterior que incluye la contraseña de las credenciales locales, puede obtener los errores siguientes:

      • No se puede encontrar un destinatario que tenga guid de buzón de correo
      • Los GUID de archivo de los destinatarios de origen y destino no coinciden
  5. Mover solo el buzón principal de Exchange Online mediante PowerShell

    • Si las ubicaciones del buzón de correo principal y del buzón de archivo están en Exchange Online y desea mover solo el buzón principal, agregue -PrimaryOnly los parámetros y -ArchiveDomain al comando que ejecute para crear un nuevo movimiento y, en la sintaxis de comandos, rellene los detalles siguientes:

      • Identidad: nombre del buzón o dirección de correo electrónico.
      • OutBound: mantenga el valor vacío.
      • RemoteTargetDatabase: base de datos de buzones de Exchange local.
      • RemoteHostName: el servidor remoto que copió en el paso 2.
      • PrimaryOnly: mantenga el valor vacío.
      • ArchiveDomain: dominio SMTP principal usado para los buzones de Exchange Online organización.
      • TargetDeliveryDomain: dominio SMTP principal usado para los buzones de Exchange Online organización.
      • RemoteCredential: cuenta de administrador local con privilegios.

      El comando que se va a ejecutar para crear una nueva solicitud de movimiento es:

      New-MoveRequest -OutBound -RemoteTargetDatabase "DB01" -RemoteHostName "mail.contoso.com" -PrimaryOnly -ArchiveDomain "<domain>.mail.onmicrosoft.com" -TargetDeliveryDomain "contoso.com" -RemoteCredential (Get-Credential)
      

      Después de ejecutar el comando, se muestra una solicitud de inicio de sesión de credenciales como se muestra en la siguiente sintaxis de comandos:

      PS C:\> Get-Mailbox -Identity "Jordy.Twin@contoso.com" | New-MoveRequest -OutBound -RemoteTargetDatabase "DB01" -RemoteHostName "mail.contoso.com" -PrimaryOnly -ArchiveDomain "<domain>.mail.onmicrosoft.com" -TargetDeliveryDomain "contoso.com" -RemoteCredential (Get-Credential exoip\administrator)
      
      DisplayName Status TargetDatabase
      ----------- ------ --------------
      Jordy Twin  Queued
      

      Rellene la contraseña de las credenciales locales (RemoteCredential).

  6. Obtención del estado de movimiento del buzón

    • Obtenga el estado de la solicitud de movimiento del buzón mediante el cmdlet Get-MoveRequest .

      PS C:\> Get-MoveRequest -Identity "Jordy.Twin@contoso.com" | Get-MoveRequestStatistics | ft DisplayName,StatusDetail,TotalMailboxSize,TotalArchiveSize,PercentComplete
      
      DisplayName StatusDetail TotalMailboxSize             TotalArchiveSize PercentComplete
      ----------- ------------ ----------------             ---------------- ---------------
      Jordy Twin  Completed    231.6 MB (242,877,775 bytes) 0 B (0 bytes)                100
      

      Se completa el movimiento del buzón. Si ese no es el caso y no puede completar la solicitud de traslado del buzón, puede suspender y reanudar la solicitud de traslado.

Para implementar el siguiente paso para quitar los lotes migrados completados, consulte Eliminación de lotes de migración completados.