Une migration cross-tenant implique une interdépendance étroite entre plusieurs modules : Exchange Online, Microsoft Graph et les commandes liées à CrossTenantIdentityMapping dans Microsoft Entra ID. Négliger l’un de ces composants compromet l’ensemble de la chaîne d’automatisation. C’est pourquoi la préparation du tenant cible Microsoft 365 doit s’accompagner d’une configuration rigoureuse des scripts PowerShell de migration, en respectant les exigences d’authentification moderne imposées par la plateforme. Eliadis, partenaire Microsoft spécialisé dans l’intégration et la gouvernance des environnements collaboratifs, accompagne ses clients dans le paramétrage PowerShell pour migration tenant à tenant, en s’appuyant sur les modules disponibles via la PowerShell Gallery et les recommandations officielles de Microsoft 365.
À retenir :
- Configurer les modules PowerShell est essentiel pour une migration Microsoft 365 réussie
- Les modules clés incluent ExchangeOnlineManagement, Microsoft.Graph et MicrosoftTeams
- L’authentification moderne est requise, avec MFA et OAuth 2.0 pour la sécurité
- Observer des environnements distincts pour le test, la préproduction et la production réduit les erreurs
- Un audit minutieux des scripts PowerShell est indispensable pour la traçabilité des actions
- Maintenir les modules et versions à jour est crucial pour éviter les incompatibilités
Pré-requis et préparation de l’environnement PowerShell Microsoft 365
Avant de lancer une migration tenant to tenant, l’environnement PowerShell doit être correctement configuré avec les modules et paramètres de sécurité adaptés. Cette étape conditionne directement la stabilité et la sécurité de l’ensemble des opérations d’automatisation qui suivront.
Modules PowerShell indispensables pour une migration Microsoft 365
La checklist installation modules PowerShell Microsoft 365 comporte plusieurs composants critiques. Les trois piliers essentiels sont : ExchangeOnlineManagement, qui permet de gérer les boîtes aux lettres et les ressources Exchange Online ; Microsoft.Graph, qui offre un accès unifié aux API Microsoft 365 ; et Microsoft.Graph.Beta, qui donne accès aux fonctionnalités en préversion, parfois nécessaires lors de migrations complexes. D’après Microsoft, le processus de migration Microsoft 365 cross-tenant requiert l’installation de cinq modules prérequis, dont ExchangeOnlineManagement et MicrosoftTeams (Source : Microsoft — 2026-02-25). Ces modules sont tous disponibles via la PowerShell Gallery, le référentiel officiel de Microsoft pour la distribution de modules PowerShell.
| Module | Rôle principal | Version PowerShell compatible |
|---|---|---|
| ExchangeOnlineManagement | Gestion Exchange Online et migration de boîtes aux lettres | 5.1 et 7.x |
| Microsoft.Graph | Accès unifié aux API Microsoft 365 (production) | 5.1 et 7.x |
| Microsoft.Graph.Beta | Accès aux API en préversion | 5.1 et 7.x |
| MicrosoftTeams | Administration Teams et migration des ressources associées | 5.1 et 7.x |
Compatibilité avec Windows PowerShell 5.1 et PowerShell 7
Les projets d’installation des connecteurs PowerShell Microsoft 365 doivent tenir compte des différences entre Windows PowerShell 5.1 et PowerShell 7 (Core). Si la version 5.1 reste largement déployée en entreprise, PowerShell 7 est recommandé pour les migrations cloud en raison de ses meilleures performances, de sa gestion native de la parallélisation et de sa compatibilité étendue avec les modules Microsoft.Graph. Il est conseillé de vérifier la version installée via la commande $PSVersionTable avant toute opération. Les pré-requis PowerShell pour projet de migration cloud précisent également que .NET Framework 4.7.2 minimum est requis pour Windows PowerShell 5.1, tandis que PowerShell 7 s’appuie sur .NET 6 ou supérieur.
Configuration TLS et ExecutionPolicy : sécuriser le chargement des modules
La gestion des erreurs PowerShell durant la migration commence souvent par une mauvaise configuration de TLS. Pour charger correctement les modules depuis la PowerShell Gallery, il est nécessaire d’activer TLS 1.2 explicitement via la commande [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12. Par ailleurs, la politique d’exécution doit être définie au minimum sur RemoteSigned avec Set-ExecutionPolicy RemoteSigned -Scope CurrentUser, afin d’autoriser les scripts signés tout en conservant un niveau de sécurité adapté aux environnements d’entreprise. Pour approfondir la configuration spécifique aux échanges cross-tenant, la mise en place du point de terminaison de migration cross-tenant Exchange Online constitue l’étape complémentaire naturelle à cette préparation environnementale. La documentation officielle sur la migration multi-tenant Microsoft 365 fournit également des références techniques précieuses pour valider chaque prérequis avant de passer à la phase de configuration des connecteurs.

Configuration des modules de connexion et authentification sécurisée
Configurer correctement les modules de connexion PowerShell est la condition préalable à toute migration tenant to tenant Microsoft 365 réussie. Chaque tenant — source et cible — doit être accessible via des sessions authentifiées, distinctes et sécurisées avant d’exécuter le moindre transfert de données.
Les cmdlets Connect-MgGraph et Connect-ExchangeOnline
La connexion PowerShell à deux tenants Microsoft 365 repose sur deux cmdlets essentielles. Connect-MgGraph, issu du module Microsoft Graph PowerShell SDK, permet d’interagir avec Microsoft Entra ID et les ressources Microsoft 365 via l’API Graph. On l’invoque en spécifiant les scopes requis, par exemple :
Connect-MgGraph -Scopes "Directory.ReadWrite.All","User.ReadWrite.All"
Connect-ExchangeOnline, du module Exchange Online Management, établit quant à lui la session vers Exchange Online du tenant concerné. Pour cibler alternativement le tenant source puis le tenant cible, il suffit de préciser le paramètre -UserPrincipalName ou d’utiliser des profils d’authentification distincts. Ces deux connexions doivent coexister dans un même script de migration sans interférence.
Authentification moderne : MFA, OAuth 2.0 et rôles via Microsoft Entra
La configuration de l’environnement PowerShell pour migration sécurisée exige l’abandon des méthodes d’authentification basiques au profit de l’authentification moderne. OAuth 2.0 constitue le protocole standard : il génère des jetons d’accès à durée de vie limitée, éliminant la transmission de mots de passe en clair. Le MFA renforce ce dispositif en imposant un second facteur lors de l’obtention du jeton initial.
Côté autorisations, le modèle RBAC de Microsoft Entra ID régit précisément ce que chaque compte peut effectuer. Selon la documentation Microsoft sur la migration multi-tenant, les rôles minimaux recommandés incluent Global Administrator ou Exchange Administrator selon le périmètre de la migration. D’après Microsoft, la migration tenant-to-tenant s’appuie sur cinq étapes séquentielles, dont la connexion et la validation du tenant cible font partie intégrante (Source : Microsoft — 2026-04-06).
| Périmètre | Rôle recommandé | Module PowerShell associé |
|---|---|---|
| Identités et groupes | Global Administrator | Microsoft.Graph |
| Messagerie Exchange | Exchange Administrator | ExchangeOnlineManagement |
| SharePoint & OneDrive | SharePoint Administrator | PnP.PowerShell |
| Conformité & sécurité | Compliance Administrator | Microsoft.Graph |
Comptes de service dédiés à la migration
L’utilisation de comptes de service dédiés est une pratique incontournable dans toute authentification moderne PowerShell Microsoft 365 appliquée à un projet de migration. Ces comptes, distincts des comptes nominatifs, permettent de tracer précisément chaque opération, de limiter la surface d’exposition en cas de compromission et de maintenir une continuité de traitement sans dépendance à la présence d’un utilisateur humain. Ils doivent bénéficier uniquement des rôles RBAC strictement nécessaires, être soumis au MFA via des politiques d’accès conditionnel adaptées, et faire l’objet d’une rotation régulière des credentials. Ce socle de gouvernance prépare l’environnement à accueillir sereinement les opérations de transfert décrites dans les étapes suivantes.
Mise en œuvre et gestion des scripts de migration PowerShell
Automatiser une migration tenant to tenant Microsoft 365 repose sur des scripts PowerShell structurés, reproductibles et auditables. Une organisation rigoureuse dès la phase d’initialisation réduit considérablement les risques d’erreur lors des opérations cross-tenant.
Créer un script d’initialisation standardisé
La première étape consiste à définir un script d’initialisation qui centralise la connexion aux services cibles et établit le contexte d’exécution. Ce script doit importer les modules indispensables — notamment Exchange Online, le Microsoft Graph SDK et le module CrossTenantIdentityMapping PowerShell — puis s’authentifier auprès des deux tenants concernés. En standardisant scripts PowerShell tenant to tenant dès cette phase, les équipes garantissent que chaque exécution démarre dans un environnement cohérent, avec des variables d’environnement clairement déclarées (identifiants des tenants source et destination, chemins de journaux, niveau de verbosité).
Il est recommandé d’utiliser PowerShell 7 pour bénéficier des améliorations de performances et de la gestion avancée des erreurs. À noter cependant que certains outils tiers présentent des contraintes de version : selon ShareGate, son module PowerShell requiert au minimum Windows PowerShell 3.0, et PowerShell 7.1 n’est pas supporté en raison de dépendances .NET Core spécifiques (Source : ShareGate — 2025-01-28). Cette contrainte illustre l’importance de valider la compatibilité de chaque module avant tout déploiement en production.
Gérer la journalisation et l’audit des actions PowerShell
La sécurisation des scripts PowerShell de migration passe impérativement par une journalisation complète de chaque action exécutée. Chaque script doit écrire dans un fichier de log horodaté les opérations réalisées, les avertissements rencontrés et les erreurs éventuelles. L’utilisation de blocs try/catch combinés à Write-Log permet de tracer précisément les points de défaillance. Pour l’automatisation migration Microsoft 365 par scripts, il est conseillé d’activer le module Microsoft Graph SDK pour consigner les événements d’authentification et les modifications d’objets annuaire dans un référentiel centralisé, accessible aux équipes de gouvernance.
Le tableau ci-dessous résume les éléments essentiels à inclure dans un dispositif d’audit PowerShell pour une migration cross-tenant :
| Élément à journaliser | Outil recommandé | Niveau de criticité |
|---|---|---|
| Authentification tenant source/destination | Microsoft Graph SDK | Critique |
| Exécution des cmdlets Exchange Online | Transcription PowerShell | Élevé |
| Mapping d’identités cross-tenant | CrossTenantIdentityMapping module | Critique |
| Erreurs et exceptions | Try/catch + Write-Log | Élevé |
| Durée et périmètre de chaque lot | Fichier CSV horodaté | Moyen |
Mettre à jour régulièrement les modules pour éviter les incompatibilités
Les modules PowerShell Microsoft 365 évoluent fréquemment. Ne pas maintenir ces dépendances à jour expose la migration à des incompatibilités silencieuses, notamment entre Exchange Online et les versions successives du Microsoft Graph SDK. Il est conseillé d’intégrer dans le pipeline de maintenance un script hebdomadaire exécutant Update-Module sur l’ensemble des modules de migration, suivi d’un test de connectivité automatisé. La documentation officielle Microsoft sur la migration multi-tenant cross-tenant détaille les prérequis de version à respecter pour chaque composant. La prochaine section abordera les bonnes pratiques de sécurisation des identités et des permissions dans ce contexte de migration.
Bonnes pratiques et gouvernance des environnements PowerShell
Gouverner les environnements PowerShell dans un projet de migration Microsoft 365 signifie structurer chaque couche — comptes, modules, journaux — avant d’exécuter la moindre commande en production. Les meilleures pratiques PowerShell pour tenant to tenant reposent sur trois piliers : isolation des environnements, contrôle des identités de service et maintenance rigoureuse des modules.
Établir des environnements distincts : test, préproduction, production
Préparer l’environnement PowerShell pour un projet de migration implique de séparer clairement les contextes d’exécution. Un environnement de test permet de valider les scripts sans risque sur des données réelles ; la préproduction reproduit les conditions exactes du tenant cible avant le basculement ; la production n’est touchée qu’une fois les deux premières phases validées. Cette segmentation réduit la propagation des erreurs de configuration et facilite le rollback en cas d’incident.
Pour chaque environnement, il convient de définir un fichier de configuration distinct (variables de connexion, identifiants de tenant, scopes d’autorisations) et de versionner ces fichiers via un système de contrôle de source. Le guide de migration multi-tenant Microsoft 365 fournit les prérequis techniques à respecter pour chaque phase. Éviter le partage de contextes entre environnements protège la cohérence des données et prévient les fuites de jetons d’authentification entre tenants.
Comptes de service contrôlés et vérification des logs de sécurité
La Gouvernance PowerShell dans les projets de migration Microsoft 365 exige des comptes de service dédiés, non nominatifs, dont les droits sont limités au strict nécessaire. Ces comptes doivent être créés et supervisés depuis le Microsoft Entra admin center, avec activation de l’authentification multifacteur conditionnelle et révision périodique des autorisations. Le modèle Secure Application Model est recommandé pour les scripts automatisés : il permet d’authentifier les applications sans exposer de mot de passe en clair dans les scripts.
Les journaux d’audit du Microsoft 365 admin center doivent être consultés après chaque exécution sensible. Un tableau de suivi minimum permet d’aligner traçabilité et responsabilité :
| Élément à auditer | Source de log | Fréquence recommandée |
|---|---|---|
| Connexions des comptes de service | Microsoft Entra sign-in logs | Après chaque session |
| Modifications de droits | Audit log M365 admin center | Hebdomadaire |
| Exécutions de scripts PowerShell | Journal local + SIEM | À chaque run |
| Alertes de conformité | Microsoft Purview | En continu |
Maintenance et mise à jour des modules via PowerShell Gallery
La maintenance et la mise à jour des modules PowerShell passent obligatoirement par la PowerShell Gallery, référentiel officiel Microsoft. Selon Microsoft, le module Azure (Az) doit être installé sur les machines sources et cibles avec le paramètre -Force pour garantir compatibilité et cohérence entre les deux environnements (Source : Microsoft — 2026-04-06). Cette instruction s’applique à l’ensemble des modules impliqués : ExchangeOnlineManagement, MicrosoftTeams, Microsoft.Graph.
Planifier des vérifications mensuelles des versions publiées sur la PowerShell Gallery permet d’anticiper les dépréciations. La commande Update-Module exécutée sur chaque poste d’administration garantit la cohérence des versions entre les équipes projet. Cette discipline de mise à jour est indissociable d’une stratégie de migration fiable et auditable dans la durée.
Conclusion
Configurer un environnement PowerShell robuste est une condition préalable à toute migration Microsoft 365 tenant to tenant réussie. La qualité des modules installés et leur alignement avec les exigences des deux tenants conditionnent directement la fiabilité des opérations.
Selon Microsoft, les processus de migration tenant to tenant nécessitent des modules pré-validés et une cohérence de configuration entre la source et la cible (Source : Microsoft — 2026-04-06). Cela confirme l’importance d’adopter les meilleures pratiques PowerShell dès la phase de préparation, en maintenant à jour les modules issus de PowerShell Gallery, notamment ExchangeOnlineManagement et le Microsoft Graph SDK.
Ces deux modules sont complémentaires : l’un pilote la gestion des boîtes aux lettres Exchange Online, l’autre orchestre les identités via Microsoft Entra et l’ensemble des services Microsoft 365. Ensemble, ils couvrent la majorité des besoins d’une migration Microsoft 365 tenant à tenant.
Planifiez dès maintenant des cycles de maintenance réguliers, documentez chaque script déployé et versionné, et intégrez la gestion des modules PowerShell tenant to tenant dans votre gouvernance projet. C’est à ce prix que la migration restera sécurisée et auditable.
