Passer au contenu principal

Copier plusieurs boîtes aux lettres avec PowerShell

Utilisez PowerShell pour copier plusieurs boîtes aux lettres Microsoft 365 par lots à partir d’un fichier de mappage.

Notes :

L'intégration PowerShell nécessite un abonnement ShareGate Migrate Pro ou Enterprise. Elle n'est pas disponible avec le plan Essentials.

À la fin janvier 2026, Microsoft a commencé à déprécier le cookie IDCRL, ce qui signifie que seules les méthodes 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 méthode 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 volumineuses.

Procédure

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.

Préparer votre fichier de mappage

Votre fichier de mappage est un fichier CSV qui associe chaque boîte aux lettres source à sa destination. Préparez-le avant de lancer la migration afin de vérifier et d’ajuster les correspondances.

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 par nom d’affichage.

$source = Connect-MicrosoftOnline
$destination = Connect-MicrosoftOnline

Export-MailboxMappings -SourceConnection $source -DestinationConnection $destination -Path "C:\MyMappings\"

Modifiez "C:\MyMappings\" pour indiquer le dossier de votre disque où vous souhaitez enregistrer le fichier de mappage. Consultez Export-MailboxMappings pour les paramètres disponibles.

Les boîtes aux lettres sans correspondance à la destination sont laissées vides dans le CSV. Vérifiez le fichier et complétez les correspondances manquantes avant de continuer.

Depuis ShareGate Migrate

  1. Suivez les étapes de Survol de Copy mailboxes - Mappings pour configurer votre opération et accéder à l’écran de mappage.

  2. Cliquez sur l’icône Export mappings.

  3. Enregistrez le fichier CSV et notez son emplacement.

Une fois votre fichier de mappage prêt, ouvrez-le et vérifiez les correspondances. Vous pouvez modifier le CSV pour ajouter, supprimer ou ajuster les associations source-destination avant de lancer la migration.

Créer votre script

Copiez et collez le script suivant dans l’application PowerShell de votre choix. Modifiez les valeurs -Path dans $mappings et $csv pour pointer vers le fichier de mappage que vous avez enregistré à l’étape 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"

# 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 : Connectez-vous à vos locataires Microsoft 365 source et destination. Consultez Connect-MicrosoftOnline pour les options d’authentification.

  • $options : Définit le contenu à inclure dans la copie. Remplacez -IncludeEmails par les options adaptées à votre migration. Consultez New-MailboxCopyOptions pour les paramètres disponibles.

  • $mappings et $csv : Les deux doivent pointer vers le même fichier de mappage. Modifiez -Path et Import-Csv -Path pour correspondre au fichier enregistré précédemment.

  • $batchSize : Nombre de boîtes aux lettres à traiter par lot. Commencez avec 16 et ajustez selon les performances de votre environnement.

  • $guids : Extrait les identifiants utilisateur source pour le lot en cours à partir du CSV.

  • $mailboxes : Récupère les objets boîtes aux lettres pour le lot en cours. Le paramètre -AllowMultiple est requis si vous passez plus d’un identifiant. Consultez Get-Mailbox pour plus de détails.

  • $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 pour chaque lot une fois terminé. Consultez Export-Report.

Exécutez votre script une fois qu’il est correctement ajusté et testé.

À prendre en compte

  • Modern authentication avec -ModernAuth est la méthode d’authentification la plus sécurisée pour Microsoft 365 et peut être utilisée avec les variables Username et Password tant que l’authentification multifacteur (MFA) n’est pas activée. 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 bureau et optimiser les performances.

  • Pour effectuer une migration incrémentale, relancez le script après la première copie pour synchroniser uniquement les éléments ajoutés ou modifiés depuis le dernier passage.

  • Taille du lot : La taille 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. Les petits lots 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 d’identifier d’éventuels problèmes avant qu’ils n’affectent un grand nombre d’utilisateurs.


"Cet article a été traduit à l'aide de l'intelligence artificielle. En cas de doute, veuillez vous référer à la version originale en anglais."

Avez-vous trouvé la réponse à votre question ?