Remarques :
L'intégration PowerShell nécessite un abonnement ShareGate Migrate Pro ou Enterprise. Elle n'est pas disponible avec le forfait Essentials.
Depuis fin janvier 2026, Microsoft a commencé à abandonner progressivement le cookie IDCRL, ce qui signifie que seules les méthodes d'authentification Browser et Modern authentication, avec les paramètres -Browser et -ModernAuth, fonctionneront dans la plupart des locataires Microsoft 365. Pour en savoir plus, consultez Changement important concernant l'authentification « Autre utilisateur » pour Microsoft 365.
Utilisez PowerShell pour copier plusieurs boîtes aux lettres Microsoft 365 à partir d'un fichier de mappage. Cette approche vous permet de traiter les boîtes aux lettres par lots et d'exporter un rapport après chaque lot, ce qui facilite la gestion de vos migrations de boîtes aux lettres de grande envergure.
Étapes à suivre
Pour votre migration de boîtes aux lettres, vous aurez besoin d'un fichier de mappage et d'un script PowerShell qui lit ce fichier pour copier les boîtes aux lettres par lots.
Configurez votre fichier de mappage
Votre fichier de mappage est un fichier CSV qui associe chaque boîte aux lettres source à sa destination. Configurez-le avant d'exécuter la migration afin de vérifier et d'ajuster les associations.
Avec PowerShell
Exécutez le script suivant pour générer automatiquement votre fichier de mappage. ShareGate Migrate associe les boîtes aux lettres source et destination en fonction du nom d'affichage.
$source = Connect-MicrosoftOnline
$destination = Connect-MicrosoftOnline
Export-MailboxMappings -SourceConnection $source -DestinationConnection $destination -Path "C:\MyMappings\"
Remplacez "C:\MyMappings\" par le dossier de votre disque où vous voulez enregistrer le fichier de mappage. Consultez Export-MailboxMappings pour connaître les paramètres disponibles.
Les boîtes aux lettres sans correspondance à la destination sont laissées vides dans le fichier CSV. Vérifiez le fichier et complétez les associations manquantes avant de continuer.
Depuis ShareGate Migrate
Suivez les étapes décrites dans Copy mailboxes - Mappages pour configurer votre opération et accéder à l'écran de mappage.
Cliquez sur l'icône Export mappings.
Enregistrez le fichier CSV et notez son chemin d'accès.
Une fois votre fichier de mappage prêt, ouvrez-le et vérifiez les associations. Vous pouvez modifier le fichier CSV pour ajouter, supprimer ou ajuster les correspondances source-destination avant d'exécuter la migration.
Créez votre script
Copiez et collez le script suivant dans l'application PowerShell de votre choix. Mettez à jour les valeurs de -Path dans $mappings et $csv pour qu'elles pointent vers le fichier de mappage enregistré à la section précédente.
$sourceConnection = Connect-MicrosoftOnline
$destinationConnection = Connect-MicrosoftOnline
$options = New-MailboxCopyOptions -IncludeEmails
$mappings = Import-MailboxMappings -SourceConnection $sourceConnection -DestinationConnection $destinationConnection -Path "C:\MyMappings\SharegateMailboxesMapping.csv"
$csv = Import-Csv -Path "C:\MyMappings\SharegateMailboxesMapping.csv"
# Ensure $csv is treated as an array, even with a single mailbox
$csv = @($csv)
# Initialize the starting index and the batch size
$index = 0
$batchSize = 16
while ($index -lt $csv.Count) {
# Select the current batch
$guids = $csv | Select-Object -Skip $index -First $batchSize -ExpandProperty "Source user id"
# Fetch the mailboxes
$mailboxes = Get-Mailbox -Id $guids -Connection $sourceConnection -AllowMultiple
# Copy the mailboxes
$result = Copy-Mailbox -SourceConnection $sourceConnection -DestinationConnection $destinationConnection -CopyOptions $options -MappingSettings $mappings -Mailboxes $mailboxes
# Export the report
Export-Report -SessionId $result.SessionId
# Increment index for next batch
$index += $batchSize
}
Adaptez le script à votre environnement. Voici quelques conseils :
$sourceConnection et $destinationConnection : se connectent à vos locataires Microsoft 365 source et destination. Consultez Connect-MicrosoftOnline pour connaître les options d'authentification.
$options : définit le contenu à inclure dans la copie. Remplacez
-IncludeEmailspar les options adaptées à votre migration. Consultez New-MailboxCopyOptions pour connaître les paramètres disponibles.$mappings et $csv : doivent tous les deux pointer vers le même fichier de mappage. Mettez à jour
-PathetImport-Csv -Pathpour qu'ils correspondent au fichier enregistré à la section précédente.$batchSize : le nombre de boîtes aux lettres à traiter par lot. Commencez avec 16 et ajustez selon les performances de votre environnement.
$guids : extrait les ID d'utilisateur source du lot en cours à partir du fichier CSV.
$mailboxes : récupère les objets boîte aux lettres du lot en cours. Le paramètre
-AllowMultipleest requis lorsque vous transmettez plusieurs ID. Consultez Get-Mailbox pour en savoir plus.$result : contient le résultat de l'opération de copie, y compris l'ID de session utilisé par Export-Report.
Export-Report : exporte le rapport de migration de chaque lot une fois celui-ci terminé. Consultez Export-Report.
Exécutez votre script une fois qu'il est correctement ajusté et testé.
Points à considérer
Modern authentication avec
-ModernAuthest la méthode d'authentification la plus sécurisée pour Microsoft 365. Elle peut être utilisée avec les variables Username et Password tant que l'authentification multifacteur (MFA) n'est pas obligatoire. Consultez Connect-MicrosoftOnline pour découvrir les différentes options d'authentification, ou pour passer à Browser authentication si nécessaire.Les rapports de migration sont générés par lot. Le script exporte automatiquement le rapport de chaque lot avec Export-Report.
Vous pouvez planifier votre migration avec PowerShell pour l'exécuter en dehors des heures de travail et optimiser les performances.
Pour effectuer une migration incrémentale, réexécutez le script après la copie initiale afin de synchroniser uniquement les éléments ajoutés ou modifiés depuis la dernière exécution.
Taille des lots : la taille de lot idéale dépend de la taille de vos boîtes aux lettres et des conditions réseau. Commencez avec 16 et ajustez selon les performances. Des lots plus petits sont plus faciles à surveiller et à dépanner en cas d'échec.
Erreurs de script et tests : testez votre script sur un petit sous-ensemble de boîtes aux lettres avant de l'exécuter sur l'ensemble de votre environnement. Les tests permettent de repérer les problèmes potentiels avant qu'ils touchent un grand nombre d'utilisateurs.
Cet article a été traduit à l'aide de l'intelligence artificielle. En cas de doute, référez-vous à la version originale en anglais.
