Préparer des boîtes aux lettres pour les déplacements inter-forêts à l’aide d’Exchange Management Shell

Exchange Server prend en charge les déplacements et les migrations de boîtes aux lettres à l’aide des applets de commande New-MoveRequest et New-MigrationBatch de l’environnement de ligne de commande Exchange Management Shell. Vous pouvez également déplacer la boîte aux lettres dans le Centre d’administration Exchange (EAC).

  • Dans Exchange 2016, vous pouvez déplacer une boîte aux lettres Exchange 2010, Exchange 2013 ou Exchange 2016 d’une forêt Exchange source vers une forêt Exchange 2016 cible.

  • Dans Exchange 2019, vous pouvez déplacer une boîte aux lettres Exchange 2013, Exchange 2016 ou Exchange 2019 d’une forêt Exchange source vers une forêt Exchange 2019 cible.

Pour exécuter les cmdlets New-MoveRequest et New-MigrationBatch, un utilisateur de messagerie doit exister dans la forêt Exchange cible et disposer d'un ensemble d'attributs Active Directory obligatoires minimum.

L’exemple de script Exchange PowerShell décrit dans cette rubrique prend en charge cette tâche en synchronisant les utilisateurs de boîtes aux lettres d’une forêt source Exchange avec les forêts cibles Exchange en tant qu’utilisateurs de messagerie (également appelés utilisateurs à extension messagerie). Le script copie les attributs Active Directory des utilisateurs de boîte aux lettres dans la forêt source vers la forêt cible, puis utilise l’applet de commande Update-Recipient pour transformer les objets cibles en utilisateurs de messagerie.

Pour plus d’informations sur l’utilisation et l’écriture de scripts, consultez À propos des scripts. Pour plus d'informations sur la préparation pour les déplacements inter-forêts, voir Préparer les boîtes aux lettres pour les demandes de déplacement inter-forêts.

Souhaitez-vous rechercher les autres tâches de gestion relatives aux demandes de déplacement à distance ? Consultez Gérer les déplacements de boîtes aux lettres locales dans Exchange Server.

Ce qu'il faut savoir avant de commencer

  • Recherchez le script Prepare-MoveRequest.ps1 dans %ExchangeInstallPath%Scripts. Par défaut, %ExchangeInstallPath% est C :\Program Files\Microsoft\Exchange Server\V15\ (notez le « \ » de fin).

  • Pour exécuter l'exemple de script, vous avez besoin des éléments suivants :

    • Forêt source Exchange (où se trouve actuellement la boîte aux lettres).

      • Pour les forêts cibles Exchange 2016, la boîte aux lettres source peut être dans Exchange 2010, Exchange 2013 ou Exchange 2016.

      • Pour les forêts cibles Exchange 2019, la boîte aux lettres source peut être dans Exchange 2013, Exchange 2016 ou Exchange 2019.

    • Forêt cible avec Exchange 2016 ou Exchange 2019 installé (vers laquelle la boîte aux lettres sera déplacée).

Conseil

Vous rencontrez des difficultés ? Demandez de l'aide en participant aux forums Exchange. Visitez le forum à l'adresse : Exchange Server, Exchange Online ou Exchange Online Protection.

Utiliser le script Prepare-MoveRequest.ps1 pour préparer les boîtes aux lettres en vue de déplacements inter-forêts

Exécutez le script à partir d’Exchange Management Shell sur un serveur de boîtes aux lettres dans la forêt Exchange 2016 ou Exchange 2019 cible. Le script copie les attributs de boîte aux lettres à partir de la forêt source.

Pour affecter des informations spécifiques d'identification d'authentification pour le contrôleur de domaine de forêt distant, vous devez tout d'abord exécuter la cmdlet Windows PowerShell Get-Credential, puis stocker l'entrée de l'utilisateur dans une variable temporaire. Lorsque vous exécutez la cmdlet Get-Credential, celle-ci demande le nom d'utilisateur et le mot de passe du compte utilisé durant l'authentification auprès du contrôleur de domaine de forêt distant. Vous pouvez ensuite utiliser la variable temporaire dans le script Prepare-MoveRequest.ps1. Pour plus d'informations à propos de la cmdlet Get-Credential, voir Get-Credential.

Remarque

Assurez-vous d'utiliser deux informations d'identification distinctes pour la forêt locale et la forêt distante lors de l'appel de ce script.

  1. Exécutez les commandes suivantes pour obtenir les informations d'identification de la forêt locale et de la forêt distante.

    $LocalCredentials = Get-Credential
    
    $RemoteCredentials = Get-Credential
    
  2. Exécutez les commandes pour transmettre les informations d’identification aux paramètres LocalForestCredential et RemoteForestCredential dans le script Prepare-MoveRequest.ps1.

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

Ensemble des paramètres du script

Le tableau suivant décrit l’ensemble des paramètres associés au script.

Paramètre Obligatoire Description
Identité Obligatoire Le paramètre Identity identifie de manière unique une boîte aux lettres dans la forêt source. L’identité peut être l’une des valeurs suivantes : Nom commun (CN), Alias, propriété proxyAddress, propriété objectGuid ou propriété DisplayName
RemoteForestCredential Obligatoire Le paramètre RemoteForestCredential spécifie l’administrateur qui dispose des autorisations nécessaires pour copier des données à partir de la forêt source Active Directory.
RemoteForestDomainController Obligatoire Le paramètre RemoteForestDomainController spécifie un contrôleur de domaine dans la forêt source où réside la boîte aux lettres.
DisableEmailAddressPolicy Facultatif Le paramètre DisableEmailAddressPolicy spécifie si la stratégie d’adresse Email (EAP) doit être désactivée lors de la création d’un objet MailUser dans la forêt cible.
Lorsque vous spécifiez ce paramètre, l'EAP dans la forêt cible ne sera pas appliqué.
Remarque : Lorsque vous spécifiez ce paramètre, l’objet MailUser n’a pas de mappage d’adresse de messagerie dans le domaine de forêt local estampillé. Ceci est généralement identifié par l'EAP.
LinkedMailUser Facultatif Le commutateur LinkedMailUser spécifie s’il faut créer un MailUser lié dans la forêt locale pour l’utilisateur de boîte aux lettres dans la forêt distante.
Si le commutateur est fourni, le script crée un objet MailUser cible lié à la boîte aux lettres source. Si le commutateur est omis, le script crée un objet MailUser cible ordinaire.
LocalForestCredential Facultatif Le paramètre LocalForestCredential spécifie l’administrateur disposant des autorisations nécessaires pour écrire des données dans la forêt cible Active Directory.
Il est conseillé de spécifier explicitement ce paramètre pour éviter les problèmes d'autorisation Active Directory.
Si une relation d'approbation est configurée sur la forêt distante et la forêt locale, n'utilisez pas de compte utilisateur de la forêt distante en tant qu'information d'identification de forêt locale, même si l'utilisateur distant pourrait avoir l'autorisation de modifier Active Directory dans la forêt locale.
LocalForestDomainController Facultatif Le paramètre LocalForestDomainController spécifie un contrôleur de domaine dans la forêt cible où l’utilisateur de messagerie sera créé.
Il est conseillé de spécifier ce paramètre pour éviter les éventuels problèmes de retard de réplication de contrôleur de domaine dans la forêt locale qui pourraient se produire si un contrôleur de domaine aléatoire est sélectionné.
MailboxDeliveryDomain Facultatif Le paramètre MailboxDeliveryDomain spécifie un domaine faisant autorité de la forêt source afin que le script puisse sélectionner la propriété proxyAddress de la boîte aux lettres source correcte comme propriété targetAddress de l’utilisateur de messagerie cible.
Par défaut, l’adresse SMTP principale de l’utilisateur de boîte aux lettres source est définie en tant que propriété targetAddress de l’utilisateur de messagerie cible.
OverWriteLocalObject Facultatif Le paramètre OverWriteLocalObject est utilisé pour les utilisateurs créés par l’outil de migration Active Directory. Les propriétés sont copiées du contact de messagerie existant dans le nouvel utilisateur de messagerie. Cependant, une fois cette copie effectuée, le script copie également les propriétés de l'utilisateur de forêt source dans le nouvel utilisateur de messagerie.
TargetMailUserOU Facultatif Le paramètre TargetMailuserOU spécifie l’unité d’organisation sous laquelle l’utilisateur de messagerie cible sera créé.
UseLocalObject Facultatif Le paramètre UseLocalObject spécifie s’il faut convertir l’objet local existant en utilisateur de messagerie cible requis si le script détecte un objet dans la forêt locale en conflit avec l’utilisateur de messagerie à créer.

Exemples

Cette section contient plusieurs exemples d’utilisation du script Prepare-MoveRequest.ps1.

Exemple : Utilisateur de messagerie lié unique

Cet exemple provisionne un seul utilisateur de messagerie liée dans la forêt locale, lorsqu’il existe une approbation de forêt entre la forêt distante et la forêt locale.

  1. Exécutez les commandes suivantes pour obtenir les informations d'identification de la forêt locale et de la forêt distante.

    $LocalCredentials = Get-Credential
    
    $RemoteCredentials = Get-Credential
    
  2. Exécutez la commande suivante pour transmettre les informations d’identification aux paramètres LocalForestCredential et RemoteForestCredential dans le script Prepare-MoveRequest.ps1.

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

Exemple : Traitement en pipeline

Cet exemple prend en charge le traitement en pipeline si vous fournissez une liste des identités de boîtes aux lettres.

  1. Exécutez la commande suivante :

    $UserCredentials = Get-Credential
    
  2. Exécutez la commande suivante pour transmettre les informations d’identification au paramètre RemoteForestCredential dans le script Prepare-MoveRequest.ps1.

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

Exemple : utiliser un fichier .csv pour créer des utilisateurs de courrier en bloc

Vous pouvez générer un fichier .csv contenant une liste d’identités de boîte aux lettres à partir de la forêt source, ce qui vous permet de diriger le contenu de ce fichier vers le script pour créer en bloc les utilisateurs de messagerie cible.

Par exemple, le contenu du fichier .csv peut être :

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

Cet exemple appelle un fichier .csv pour créer en bloc les utilisateurs de messagerie cible.

  1. Exécutez la commande suivante permettant d'obtenir les informations d'identification pour la forêt distante.

    $UserCredentials = Get-Credential
    
  2. Exécutez la commande suivante pour transmettre les informations d’identification au paramètre RemoteForestCredential dans le script Prepare-MoveRequest.ps1.

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

Comportement de script par objet cible

Cette section décrit la façon dont le script s’exécute par rapport un différents scénarios pour les objets cible.

Objet à extension messagerie cible en double

Lorsque le script tente de créer un utilisateur de messagerie cible à partir de l’utilisateur de boîte aux lettres source et qu’il détecte un objet local à extension messagerie en double, il utilise la logique suivante :

  • Si l'attribut masterAccountSid de l'utilisateur de la boîte aux lettres source équivaut à l'attribut objectSid ou masterAccountSid de l'objet cible :

    • Si l’objet cible n’est pas à extension messagerie, le script retourne une erreur, car le script ne prend pas en charge la conversion d’un objet qui n’est pas à extension messagerie en utilisateur de messagerie.

    • Si l'objet cible est à extension messagerie, l'objet cible est un doublon.

  • Si une adresse des propriétés proxyAddress (smtp/x500 seulement) de l'utilisateur de boîtes aux lettres source équivaut à une adresse des propriétés proxyAddress (smtp/x500 seulement) d'un objet cible, alors l'objet cible est un doublon.

Le script interroge l'utilisateur sur les objets en double.

Si l’objet à extension messagerie cible est un utilisateur de messagerie ou un contact de messagerie, qui est probablement créé par un déploiement de synchronisation de liste d’adresses globale entre forêts, vous pouvez réexécuter le script avec le paramètre UseLocalObject pour utiliser l’objet à extension messagerie cible pour la migration de boîtes aux lettres.

Utilisateur de messagerie

Si l’objet cible est un utilisateur de messagerie, le script copie les attributs suivants de l’utilisateur de boîte aux lettres source vers l’utilisateur de messagerie cible :

  • msExchMailboxGUID

  • msExchArchiveGUID

  • msExchArchiveName

Si le paramètre LinkedMailUser est défini, le script copie l’attribut source objectSid / masterAccountSid .

Contact de messagerie

Si l’objet cible est un contact de messagerie, le script supprime le contact existant et copie tous ses attributs vers un nouvel utilisateur de messagerie. Le script copie également les attributs suivants à partir de l'utilisateur de boîte aux lettres source :

  • msExchMailboxGUID

  • msExchArchiveGUID

  • msExchArchiveName

  • Samaccountname

  • userAccountControl (défini sur 514 ; équivalent à 0x202, ACCOUNTDISABLE | NORMAL_ACCOUNT)

  • userPrincipalName

Si le paramètre LinkedMailUser est défini, le script copie l’attribut source objectSid / masterAccountSid .

Attribut LegacyExchangeDN

Lorsque l’applet de commande Update-Recipient est appelée pour convertir l’objet cible en utilisateur de messagerie, un nouvel attribut LegacyExchangeDN est généré pour l’utilisateur de messagerie cible. Le script copie l’attribut LegacyExchangeDN de l’utilisateur de messagerie cible en tant qu’adresse x500 dans les propriétés proxyAddress de l’utilisateur de boîte aux lettres source.