Utiliser PowerShell pour déplacer des boîtes aux lettres
Vous pouvez utiliser PowerShell pour déplacer des boîtes aux lettres, en plus du Centre Administration Exchange (EAC).
Déplacer des boîtes aux lettres locales vers un Exchange Online organization
Pour déplacer une boîte aux lettres locale vers Exchange Online à l’aide de PowerShell, procédez comme suit :
Se connecter à Exchange Online PowerShell : démarrez PowerShell en tant qu’administrateur et Connectez-vous à Exchange Online PowerShell en exécutant la commande suivante :
PS C:\> Connect-ExchangeOnline
Rechercher l’URL du serveur distant du point de terminaison de migration : obtenez l’URL du serveur distant à l’aide de l’applet de commande Get-MigrationEndpoint .
Get-MigrationEndpoint | Format-List Identity, RemoteServer
La sortie suivante s’affiche :
PS C:\> Get-MigrationEndpoint | Format-List Identity, RemoteServer Identity : Hybrid Migration Endpoint - EWS (Default Web Site) RemoteServer : <GUID>.resource.mailboxmigration.his.msappproxy.net
Remarque
La valeur RemoteServer dans la sortie de syntaxe de commande précédente est générée par l’exécution de l’Assistant Configuration hybride (HCW).
Copiez la valeur RemoteServer comme vous en avez besoin dans la partie suivante.
Remarque
La valeur de RemoteServer affichée dans la syntaxe de commande de sortie précédente est générée lorsque l’utilisateur sélectionne Utiliser la topologie hybride moderne Exchange dans la page Topologie hybride .
Créer une demande de déplacement pour déplacer des boîtes aux lettres principales et d’archivage vers Exchange Online à l’aide de PowerShell
Renseignez les informations suivantes pour créer une demande de déplacement afin de déplacer la boîte aux lettres principale et la boîte aux lettres d’archivage vers Exchange Online :
- Identité : nom de boîte aux lettres ou adresse e-mail.
- RemoteHostName : serveur distant que vous avez copié à l’étape 2.
- TargetDeliveryDomain : domaine SMTP principal utilisé pour les boîtes aux lettres Exchange Online organization.
- RemoteCredential : compte d’administrateur local avec des privilèges.
Une fois la commande exécutée, une demande de connexion aux informations d’identification s’affiche.
New-MoveRequest -Identity "Maisha.Lee@contoso.com" -Remote -RemoteHostName "mail.contoso.com" -TargetDeliveryDomain "<domain>.mail.onmicrosoft.com" -RemoteCredential (Get-Credential)
Renseignez le mot de passe des informations d’identification locales (RemoteCredential).
Déplacer plusieurs boîtes aux lettres vers Exchange Online à l’aide de PowerShell
Créez un fichier CSV nommé Users.csv et placez-le dans le répertoire C :\migration.
Ouvrez le fichier CSV, nommez la colonne d’en-tête EmailAddress et renseignez toutes les boîtes aux lettres que vous souhaitez déplacer vers Exchange Online.
Copiez le script suivant et modifiez les 3 premières lignes. Après cela, exécutez le 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 }
Déplacer la boîte aux lettres principale uniquement vers Exchange Online à l’aide de PowerShell
Il existe un scénario dans lequel l’emplacement de la boîte aux lettres d’archivage se trouve dans Exchange Online et l’emplacement de la boîte aux lettres principale est dans Exchange local, et vous exécutez la commande suivante :
$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 }
Le résultat est que vous recevez le message d’erreur suivant, qui fait partie de la syntaxe de commande plus grande qui s’affiche après le message d’erreur :
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
Une fois le message d’erreur affiché, procédez comme suit :
Ajoutez le
-PrimaryOnly
paramètre à la syntaxe de commande précédente pour résoudre l’erreur lorsque vous créez une demande de déplacement pour déplacer la boîte aux lettres principale uniquement vers Exchange Online.Renseignez les informations suivantes :
- Identité : nom de boîte aux lettres ou adresse e-mail.
- RemoteHostName : serveur distant que vous avez copié à l’étape 2.
- PrimaryOnly : conservez la valeur vide.
- TargetDeliveryDomain : domaine SMTP principal utilisé pour les boîtes aux lettres Exchange Online organization.
- RemoteCredential : compte d’administrateur local avec des privilèges.
Après avoir exécuté la commande pour une nouvelle demande de déplacement, une demande de connexion d’informations d’identification s’affiche comme indiqué dans la syntaxe de commande suivante :
New-MoveRequest -Identity "Maisha.Lee@contoso.com" -Remote -RemoteHostName "mail.contoso.com" -PrimaryOnly -TargetDeliveryDomain "<domain>.mail.onmicrosoft.com" -RemoteCredential (Get-Credential)
Renseignez le mot de passe des informations d’identification locales (RemoteCredential).
Déplacer uniquement la boîte aux lettres d’archivage vers Exchange Online à l’aide de 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
- Ajoutez le
ArchiveOnly
paramètre à la syntaxe de commande précédente pour résoudre l’erreur lorsque vous créez une demande de déplacement pour déplacer la boîte aux lettres d’archivage uniquement vers Exchange Online. - Renseignez les informations suivantes :
- Identité : nom de boîte aux lettres ou adresse e-mail.
- RemoteHostName : serveur distant que vous avez copié à l’étape 2.
- ArchiveOnly : conservez la valeur vide.
- TargetDeliveryDomain : domaine SMTP principal utilisé pour les boîtes aux lettres Exchange Online organization.
- RemoteCredential : compte d’administrateur local avec des privilèges.
Après avoir exécuté la commande pour une nouvelle demande de déplacement, une demande de connexion d’informations d’identification s’affiche, comme indiqué dans la syntaxe de commande suivante :
New-MoveRequest -Identity "Maisha.Lee@contoso.com" -Remote -RemoteHostName "mail.contoso.com" -ArchiveOnly -TargetDeliveryDomain "<domain>.mail.onmicrosoft.com" -RemoteCredential (Get-Credential)
Renseignez le mot de passe des informations d’identification locales (RemoteCredential).
- Ajoutez le
Obtenir les status de déplacement de boîte aux lettres
Obtenez le status de la demande de déplacement de boîte aux lettres à l’aide de l’applet de commande Get-MoveRequest.
Get-MoveRequest -Identity "Maisha.Lee@contoso.com" | Get-MoveRequestStatistics
Exécutez la commande suivante pour obtenir toutes les demandes de déplacement de boîte aux lettres :
Get-MoveRequest | Get-MoveRequestStatistics
La sortie montre le déplacement de la boîte aux lettres status comme terminé status, comme illustré dans la capture d’écran suivante :
Si ce n’est pas le cas et que vous ne pouvez pas terminer la demande de déplacement de boîte aux lettres, vous pouvez suspendre et reprendre la demande de déplacement.
Déplacer Exchange Online boîtes aux lettres vers un organization local
Pour déplacer une boîte aux lettres Exchange Online vers le organization local à l’aide de PowerShell, procédez comme suit :
Se connecter à Exchange Online PowerShell : démarrez PowerShell en tant qu’administrateur et Connectez-vous à Exchange Online PowerShell en exécutant la commande suivante :
PS C:\> Connect-ExchangeOnline
Remarque
Vous n’extrayez pas la boîte aux lettres Exchange Online localement. En fait, vous envoyez la boîte aux lettres Exchange Online en local. C’est pourquoi vous devez vous connecter à Exchange Online et exécuter les commandes à partir de Exchange Online PowerShell.
Rechercher l’URL du serveur distant du point de terminaison de migration : obtenez l’URL du serveur distant à l’aide de l’applet de commande Get-MigrationEndpoint .
Get-MigrationEndpoint | Format-List Identity, RemoteServer
La sortie suivante s’affiche :
Identity : Hybrid Migration Endpoint - EWS (Default Web Site) RemoteServer : mail.contoso.com
Remarque
La valeur RemoteServer dans la sortie de syntaxe de commande précédente est générée par l’exécution de l’Assistant Configuration hybride (HCW).
Copiez la valeur URL remoteServer comme vous en avez besoin dans la partie suivante.
Créer une demande de déplacement pour déplacer des boîtes aux lettres principales et d’archivage à partir de Exchange Online à l’aide de PowerShell
Renseignez les informations suivantes dans le cadre de la création d’une demande de déplacement pour déplacer la boîte aux lettres principale et la boîte aux lettres d’archivage de Exchange Online :
- Identité : nom de boîte aux lettres ou adresse e-mail.
- RemoteTargetDatabase : base de données de boîtes aux lettres locale Exchange.
- RemoteHostName : serveur distant que vous avez copié à l’étape 2.
- TargetDeliveryDomain : domaine SMTP principal utilisé pour les boîtes aux lettres Exchange Online organization.
- RemoteCredential : compte d’administrateur local avec des privilèges.
La commande à exécuter pour créer une demande de déplacement est la suivante :
New-MoveRequest -OutBound -RemoteTargetDatabase "DB01" -RemoteHostName "mail.contoso.com" -TargetDeliveryDomain "contoso.com" -RemoteCredential (Get-Credential)
Renseignez le mot de passe des informations d’identification locales (RemoteCredential) pour la demande de connexion aux informations d’identification qui s’affiche comme indiqué dans la syntaxe de commande suivante une fois la commande exécutée :
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
Après avoir exécuté la commande précédente qui inclut le mot de passe des informations d’identification locales, vous pouvez obtenir les erreurs suivantes :
- Impossible de trouver un destinataire qui a un GUID de boîte aux lettres
- Les GUID d’archive sur les destinataires source et cible ne correspondent pas
Déplacer uniquement la boîte aux lettres principale de Exchange Online à l’aide de PowerShell
Si les emplacements des boîtes aux lettres principales et des boîtes aux lettres d’archivage se trouvent dans Exchange Online et que vous souhaitez déplacer la boîte aux lettres principale uniquement, ajoutez
-PrimaryOnly
les paramètres et-ArchiveDomain
à la commande que vous exécutez pour créer un déplacement, puis dans la syntaxe de commande, renseignez les détails suivants :- Identité : nom de boîte aux lettres ou adresse e-mail.
- OutBound : conservez la valeur vide.
- RemoteTargetDatabase : base de données de boîtes aux lettres locale Exchange.
- RemoteHostName : serveur distant que vous avez copié à l’étape 2.
- PrimaryOnly : conservez la valeur vide.
- ArchiveDomain : domaine SMTP principal utilisé pour les boîtes aux lettres Exchange Online organization.
- TargetDeliveryDomain : domaine SMTP principal utilisé pour les boîtes aux lettres Exchange Online organization.
- RemoteCredential : compte d’administrateur local avec des privilèges.
La commande à exécuter pour créer une demande de déplacement est la suivante :
New-MoveRequest -OutBound -RemoteTargetDatabase "DB01" -RemoteHostName "mail.contoso.com" -PrimaryOnly -ArchiveDomain "<domain>.mail.onmicrosoft.com" -TargetDeliveryDomain "contoso.com" -RemoteCredential (Get-Credential)
Après avoir exécuté la commande, une demande de connexion aux informations d’identification s’affiche comme indiqué dans la syntaxe de commande suivante :
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
Renseignez le mot de passe des informations d’identification locales (RemoteCredential).
Obtenir les status de déplacement de boîte aux lettres
Obtenez le status de la demande de déplacement de boîte aux lettres à l’aide de l’applet de commande 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
Le déplacement de la boîte aux lettres se termine. Si ce n’est pas le cas et que vous ne pouvez pas terminer la demande de déplacement de boîte aux lettres, vous pouvez suspendre et reprendre la demande de déplacement.
Pour implémenter l’étape suivante de suppression des lots migrés terminés, consultez Supprimer les lots de migration terminés.