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:
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
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).
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 .
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).
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.
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 }
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).
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).
- Agregue el
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:
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:
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.
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).
Copie el valor de dirección URL de RemoteServer cuando lo necesite en la siguiente parte.
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
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).
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.