Anavem
Languageen
Comment exporter une boîte aux lettres Exchange vers un fichier PST à l'aide de PowerShell

Comment exporter une boîte aux lettres Exchange vers un fichier PST à l'aide de PowerShell

Exporter des boîtes aux lettres Exchange vers des fichiers PST en utilisant PowerShell et Exchange Management Shell avec les permissions RBAC appropriées, la configuration du chemin UNC et des méthodes de niveau entreprise pour la migration des données et la conformité.

Evan MaelEvan Mael
26 mars 2026 15 min
mediuméchange 9 étapes 15 min

Pourquoi exporter des boîtes aux lettres Exchange vers des fichiers PST ?

L'exportation de boîtes aux lettres Exchange vers des fichiers PST reste une tâche critique pour les administrateurs informatiques gérant la migration des données, les exigences de conformité et les procédures de sauvegarde. Que vous migriez d'Exchange sur site vers Office 365, effectuiez une découverte légale ou créiez des archives de données utilisateur, comprendre les procédures d'exportation appropriées est essentiel pour les environnements d'entreprise.

Quelles sont les limitations actuelles de l'exportation Exchange ?

À partir de 2026, la cmdlet New-MailboxExportRequest n'est disponible que pour les installations Exchange Server sur site. Microsoft a maintenu cette limitation pour Exchange Online, ce qui signifie que les environnements Office 365 ne peuvent pas utiliser les exportations PST basées sur PowerShell. Cette distinction est cruciale pour planifier votre stratégie d'exportation et comprendre quels outils s'appliquent à votre environnement.

Comment le contrôle d'accès basé sur les rôles Exchange affecte-t-il les exportations PST ?

Exchange utilise le contrôle d'accès basé sur les rôles (RBAC) pour sécuriser les opérations d'exportation de boîtes aux lettres. Le rôle d'importation et d'exportation de boîtes aux lettres n'est attribué à aucun groupe de rôles par défaut, nécessitant une attribution explicite avant de pouvoir effectuer des exportations. Cette mesure de sécurité empêche l'extraction non autorisée de données et garantit que seuls les administrateurs désignés peuvent accéder au contenu des boîtes aux lettres à des fins d'exportation.

Quelle configuration réseau est requise pour les exportations PST ?

Les exportations PST nécessitent des configurations de partage réseau spécifiques que de nombreux administrateurs négligent. Le processus d'exportation ne peut pas cibler les dossiers locaux et doit utiliser des chemins réseau UNC avec des autorisations précises pour les comptes Exchange Trusted Subsystem et SYSTEM. Comprendre ces exigences évite les échecs d'exportation les plus courants et garantit un transfert de données fiable vers votre emplacement de stockage désigné.

Guide de mise en oeuvre

Procédure complète

01

Attribuer le rôle d'importation et d'exportation de boîte aux lettres

Avant de pouvoir exporter des boîtes aux lettres vers des fichiers PST, vous avez besoin du rôle Mailbox Import Export. Ce rôle n'est pas attribué par défaut à des groupes de rôles, vous devez donc l'attribuer explicitement à votre compte utilisateur.

Ouvrez Exchange Management Shell en tant qu'administrateur et exécutez cette commande :

New-ManagementRoleAssignment –Role "Mailbox Import Export" –User "yourusername"

Remplacez yourusername par votre nom d'utilisateur réel. Par exemple :

New-ManagementRoleAssignment –Role "Mailbox Import Export" –User "administrator"

Vérification : Vérifiez vos attributions de rôle avec :

Get-ManagementRoleAssignment -RoleAssignee "yourusername" | Where-Object {$_.Role -like "*Import*"}
Astuce pro : Vous pouvez attribuer ce rôle à un groupe de rôles au lieu d'utilisateurs individuels pour une meilleure gestion : New-ManagementRoleAssignment –Role "Mailbox Import Export" –RoleGroup "Organization Management"
02

Créer et configurer un partage réseau

Les exportations PST ne peuvent pas cibler des dossiers locaux comme C:\PSTExports. Vous devez créer un chemin réseau UNC (dossier partagé) auquel le serveur Exchange peut accéder.

Créez un dossier sur votre serveur Exchange ou serveur de fichiers :

New-Item -Path "D:\PST" -ItemType Directory
New-SmbShare -Name "PST" -Path "D:\PST" -FullAccess "Everyone"

Configurez les autorisations requises sur le dossier partagé. Le groupe Exchange Trusted Subsystem a besoin des autorisations de modification/lecture, et SYSTEM a besoin du contrôle total :

# Définir les autorisations du dossier
$acl = Get-Acl "D:\PST"
$accessRule1 = New-Object System.Security.AccessControl.FileSystemAccessRule("Exchange Trusted Subsystem","Modify","ContainerInherit,ObjectInherit","None","Allow")
$accessRule2 = New-Object System.Security.AccessControl.FileSystemAccessRule("SYSTEM","FullControl","ContainerInherit,ObjectInherit","None","Allow")
$acl.SetAccessRule($accessRule1)
$acl.SetAccessRule($accessRule2)
Set-Acl "D:\PST" $acl

Vérification : Testez le chemin UNC depuis Exchange Management Shell :

Test-Path "\\$env:COMPUTERNAME\PST"
Avertissement : N'utilisez jamais de chemins locaux comme C:\PST. Les demandes d'exportation Exchange échoueront avec des erreurs "Accès refusé" si vous n'utilisez pas un chemin UNC approprié.
03

Exporter une boîte aux lettres unique vers PST

Vous pouvez maintenant exporter une boîte aux lettres unique en utilisant la cmdlet New-MailboxExportRequest. C'est le scénario le plus courant pour les exportations de boîtes aux lettres individuelles.

Utilisez cette syntaxe de base pour exporter une boîte aux lettres :

New-MailboxExportRequest -Mailbox "username" -FilePath "\\servername\share\username.pst"

Voici un exemple pratique :

New-MailboxExportRequest -Mailbox "amanda.morgan" -FilePath "\\EX01-2016\PST\amanda.morgan.pst"

Vous devriez voir un résultat similaire à ceci :

Name              Mailbox                                    Status
----              -------                                    ------
MailboxExport     company.local/Users/Amanda Morgan          Queued

Vérification : Vérifiez le statut de la demande d'exportation :

Get-MailboxExportRequest -Mailbox "amanda.morgan" | Format-List Name,Mailbox,Status,PercentComplete

Surveillez la progression jusqu'à ce que le statut indique "Completed". Les grandes boîtes aux lettres peuvent prendre plusieurs heures à exporter.

Astuce pro : Ajoutez un nom personnalisé à votre demande d'exportation pour un suivi plus facile : New-MailboxExportRequest -Name "Amanda_Backup_2026" -Mailbox "amanda.morgan" -FilePath "\\EX01-2016\PST\amanda.morgan.pst"
04

Exporter la boîte aux lettres d'archive

Si votre organisation utilise des boîtes aux lettres d'archive, vous pouvez les exporter séparément en utilisant le paramètre -IsArchive. Cela est essentiel pour une migration complète des données ou pour des exigences de conformité.

Exportez une boîte aux lettres d'archive avec cette commande :

New-MailboxExportRequest -Mailbox "username" -FilePath "\\servername\share\username_archive.pst" -IsArchive

Exemple pratique :

New-MailboxExportRequest -Name "Amanda_Archive_Export" -Mailbox "amanda.morgan" -FilePath "\\EX01-2016\PST\amanda.morgan_archive.pst" -IsArchive

Vous pouvez également exporter à la fois les boîtes aux lettres principales et d'archive simultanément en exécutant deux commandes distinctes :

# Exporter la boîte aux lettres principale
New-MailboxExportRequest -Name "Amanda_Primary" -Mailbox "amanda.morgan" -FilePath "\\EX01-2016\PST\amanda.morgan_primary.pst"

# Exporter la boîte aux lettres d'archive
New-MailboxExportRequest -Name "Amanda_Archive" -Mailbox "amanda.morgan" -FilePath "\\EX01-2016\PST\amanda.morgan_archive.pst" -IsArchive

Vérification : Vérifiez d'abord si l'utilisateur a une boîte aux lettres d'archive :

Get-Mailbox "amanda.morgan" | Select-Object Name,ArchiveStatus,ArchiveDatabase

Ensuite, surveillez les deux demandes d'exportation :

Get-MailboxExportRequest | Where-Object {$_.Mailbox -like "*amanda.morgan*"} | Format-Table Name,Status,PercentComplete
05

Exportation avec filtrage par plage de dates

Pour des raisons de conformité ou de conservation des données, vous devez souvent exporter uniquement des plages de dates spécifiques. Utilisez le paramètre ContentFilter pour spécifier des critères de date.

Exporter des e-mails dans une plage de dates spécifique :

New-MailboxExportRequest -ContentFilter {(Received -lt '03/09/2026') -and (Received -gt '03/09/2025')} -Mailbox "amanda.morgan" -FilePath "\\EX01-2016\PST\amanda.morgan_2025.pst"

Vous pouvez également filtrer par d'autres critères comme l'expéditeur, le sujet ou la taille du message :

# Exporter uniquement les e-mails d'un expéditeur spécifique
New-MailboxExportRequest -ContentFilter {From -like "*@contoso.com"} -Mailbox "amanda.morgan" -FilePath "\\EX01-2016\PST\amanda_contoso_emails.pst"

# Exporter les e-mails de plus de 10 Mo
New-MailboxExportRequest -ContentFilter {MessageSize -gt '10MB'} -Mailbox "amanda.morgan" -FilePath "\\EX01-2016\PST\amanda_large_emails.pst"

# Exporter les e-mails avec un sujet spécifique
New-MailboxExportRequest -ContentFilter {Subject -like "*Project Alpha*"} -Mailbox "amanda.morgan" -FilePath "\\EX01-2016\PST\amanda_project_alpha.pst"

Vérification : Testez d'abord votre filtre de contenu pour voir combien d'éléments correspondent :

Get-MailboxStatistics "amanda.morgan" | Get-MailboxFolderStatistics | Where-Object {$_.FolderPath -eq "/Inbox"}
Astuce pro : Utilisez le cmdlet Get-Date de PowerShell pour créer des filtres de date dynamiques : $LastYear = (Get-Date).AddYears(-1).ToString('MM/dd/yyyy') puis utilisez $LastYear dans votre ContentFilter.
06

Exportation en masse de plusieurs boîtes aux lettres

Pour les migrations d'entreprise ou les exportations massives, vous pouvez exporter plusieurs boîtes aux lettres simultanément en utilisant des boucles PowerShell. Cette méthode est beaucoup plus efficace que d'exporter les boîtes aux lettres une par une.

Exporter toutes les boîtes aux lettres de votre organisation :

foreach ($Mailbox in (Get-Mailbox -ResultSize Unlimited)) {
    New-MailboxExportRequest -Mailbox $Mailbox.Identity -FilePath "\\EX01-2016\PST\$($Mailbox.Alias).pst"
}

Exporter les boîtes aux lettres d'une base de données spécifique :

$Mailboxes = Get-Mailbox -Database "Mailbox Database 01"
foreach ($Mailbox in $Mailboxes) {
    $ExportName = "Bulk_Export_" + $Mailbox.Alias
    New-MailboxExportRequest -Name $ExportName -Mailbox $Mailbox.Identity -FilePath "\\EX01-2016\PST\$($Mailbox.Alias).pst"
}

Exporter les boîtes aux lettres à partir d'un fichier CSV (utile pour les exportations sélectives) :

# Créer un fichier CSV avec les en-têtes : DisplayName,Alias
# Contenu d'exemple :
# "John Doe","john.doe"
# "Jane Smith","jane.smith"

$Users = Import-Csv "C:\temp\mailboxes_to_export.csv"
foreach ($User in $Users) {
    $ExportName = "CSV_Export_" + $User.Alias
    New-MailboxExportRequest -Name $ExportName -Mailbox $User.Alias -FilePath "\\EX01-2016\PST\$($User.Alias).pst"
}

Vérification : Surveiller toutes les demandes d'exportation :

# Vérifier la progression globale
Get-MailboxExportRequest | Group-Object Status | Select-Object Name,Count

# Obtenir le statut détaillé
Get-MailboxExportRequest | Format-Table Name,Mailbox,Status,PercentComplete -AutoSize
Avertissement : Les exportations massives peuvent consommer des ressources serveur et de la bande passante réseau importantes. Envisagez de les exécuter en dehors des heures de pointe et limitez les exportations simultanées en utilisant le paramètre -Priority ou en ajoutant des délais Start-Sleep entre les demandes.
07

Exporter des dossiers spécifiques et filtrage avancé

Parfois, vous devez exporter uniquement des dossiers spécifiques ou exclure certains dossiers de l'exportation. Exchange offre un contrôle granulaire sur ce qui est exporté.

Exporter uniquement le dossier Boîte de réception :

New-MailboxExportRequest -Mailbox "amanda.morgan" -FilePath "\\EX01-2016\PST\amanda_inbox_only.pst" -IncludeFolders "\Inbox"

Exporter plusieurs dossiers spécifiques :

New-MailboxExportRequest -Mailbox "amanda.morgan" -FilePath "\\EX01-2016\PST\amanda_important_folders.pst" -IncludeFolders "\Inbox","\Sent Items","\Important Projects"

Exclure des dossiers spécifiques (comme Éléments supprimés ou Courrier indésirable) :

New-MailboxExportRequest -Mailbox "amanda.morgan" -FilePath "\\EX01-2016\PST\amanda_clean_export.pst" -ExcludeFolders "\Deleted Items","\Junk Email","\Drafts"

Combiner le filtrage des dossiers avec le filtrage du contenu :

New-MailboxExportRequest -Mailbox "amanda.morgan" -FilePath "\\EX01-2016\PST\amanda_filtered.pst" -IncludeFolders "\Inbox","\Sent Items" -ContentFilter {(Received -gt '01/01/2025') -and (MessageSize -lt '50MB')}

Exporter vers une structure de dossiers spécifique dans le PST :

New-MailboxExportRequest -Mailbox "amanda.morgan" -FilePath "\\EX01-2016\PST\amanda_structured.pst" -SourceRootFolder "\Inbox" -TargetRootFolder "\Amanda_Inbox_Backup"

Vérification : Lister tous les dossiers dans une boîte aux lettres pour identifier les chemins de dossiers corrects :

Get-MailboxFolderStatistics "amanda.morgan" | Select-Object FolderPath,ItemsInFolder | Sort-Object FolderPath
08

Surveiller et gérer les demandes d'exportation

La surveillance appropriée des demandes d'exportation est cruciale pour les environnements d'entreprise. Exchange fournit plusieurs cmdlets pour suivre la progression et gérer les exportations en cours.

Vérifiez le statut de toutes les demandes d'exportation :

Get-MailboxExportRequest | Format-Table Name,Mailbox,Status,PercentComplete,BytesTransferred -AutoSize

Obtenez des informations détaillées sur une exportation spécifique :

Get-MailboxExportRequest -Name "Amanda_Backup_2026" | Format-List *

Voir les statistiques et la progression de l'exportation :

Get-MailboxExportRequestStatistics -Identity "Amanda_Backup_2026" | Format-List Name,Status,PercentComplete,BytesTransferred,ItemsTransferred,EstimatedTransferSize

Supprimer les demandes d'exportation terminées (nettoyage) :

# Supprimer une demande terminée spécifique
Remove-MailboxExportRequest -Identity "Amanda_Backup_2026" -Confirm:$false

# Supprimer toutes les demandes terminées
Get-MailboxExportRequest -Status Completed | Remove-MailboxExportRequest -Confirm:$false

Annuler une demande d'exportation en cours :

# Suspendre d'abord la demande
Suspend-MailboxExportRequest -Identity "Amanda_Backup_2026"

# Puis la supprimer
Remove-MailboxExportRequest -Identity "Amanda_Backup_2026" -Confirm:$false

Reprendre une exportation suspendue :

Resume-MailboxExportRequest -Identity "Amanda_Backup_2026"

Vérification : Créez un script de surveillance qui s'exécute périodiquement :

# Enregistrer sous Monitor-Exports.ps1
do {
    Clear-Host
    Write-Host "Statut de l'exportation - $(Get-Date)" -ForegroundColor Green
    Get-MailboxExportRequest | Group-Object Status | Format-Table Name,Count -AutoSize
    Get-MailboxExportRequest | Where-Object {$_.Status -eq "InProgress"} | Format-Table Name,PercentComplete,BytesTransferred -AutoSize
    Start-Sleep 30
} while ((Get-MailboxExportRequest | Where-Object {$_.Status -eq "InProgress"}).Count -gt 0)
Astuce pro : Configurez des notifications par e-mail pour les exportations terminées en ajoutant ceci à votre script de surveillance : Send-MailMessage -To "admin@company.com" -From "exchange@company.com" -Subject "Export Completed" -Body "Export $ExportName has finished" -SmtpServer "mail.company.com"
09

Dépanner les problèmes d'exportation courants

Les opérations d'exportation peuvent échouer pour diverses raisons. Voici les problèmes les plus courants et leurs solutions, basés sur l'expérience de dépannage réelle.

Problème 1 : Erreurs de permission refusée

Si vous obtenez des erreurs "Vous n'avez pas la permission", vérifiez votre attribution de rôle :

# Vérifiez les attributions de rôle actuelles
Get-ManagementRoleAssignment -RoleAssignee $env:USERNAME | Where-Object {$_.Role -like "*Import*"}

# Si aucun résultat, attribuez à nouveau le rôle
New-ManagementRoleAssignment –Role "Mailbox Import Export" –User $env:USERNAME

Problème 2 : Accès refusé au chemin UNC

Vérifiez les permissions du partage réseau et testez la connectivité :

# Testez l'accès au chemin UNC
Test-Path "\\EX01-2016\PST"

# Vérifiez les permissions de partage
Get-SmbShareAccess -Name "PST"

# Vérifiez les permissions du dossier
Get-Acl "D:\PST" | Format-List

Problème 3 : Exportation bloquée en statut en attente

Vérifiez le service de réplication de boîtes aux lettres Microsoft Exchange :

# Vérifiez le statut du service
Get-Service MSExchangeMailboxReplication

# Redémarrez si nécessaire
Restart-Service MSExchangeMailboxReplication

# Vérifiez la configuration MRS
Get-MailboxServer | Get-MailboxReplicationService

Problème 4 : Échecs d'exportation de grandes boîtes aux lettres

Pour les boîtes aux lettres de plus de 50 Go, utilisez ces paramètres :

New-MailboxExportRequest -Mailbox "large.mailbox" -FilePath "\\EX01-2016\PST\large_mailbox.pst" -Priority High -LargeItemLimit 100 -BadItemLimit 50

Problème 5 : Limitation d'Exchange Online

Rappelez-vous qu'Exchange Online ne prend pas en charge les exportations PST via PowerShell. Pour Office 365, utilisez ces alternatives :

- Centre de sécurité et conformité Microsoft 365 (Recherche de contenu)
- Microsoft Purview eDiscovery
- Outils de migration tiers
- Exportation client Outlook (pour les utilisateurs individuels)

Vérification : Testez votre configuration d'exportation avec une petite boîte aux lettres de test d'abord :

# Créez une boîte aux lettres de test
New-Mailbox -Name "TestExport" -UserPrincipalName "testexport@company.com" -Password (ConvertTo-SecureString "TempPass123!" -AsPlainText -Force)

# Testez l'exportation
New-MailboxExportRequest -Mailbox "TestExport" -FilePath "\\EX01-2016\PST\test_export.pst"
Avertissement : Ne tentez jamais d'exporter directement vers des disques locaux (C:\, D:\) depuis Exchange Management Shell. Cela échouera toujours. Utilisez toujours des chemins UNC (\\servername\share) pour les exportations PST.

Questions Fréquentes

Puis-je exporter des boîtes aux lettres Exchange Online vers des fichiers PST en utilisant PowerShell ?+
Non, Exchange Online ne prend pas en charge les exportations PST via PowerShell ou la cmdlet New-MailboxExportRequest. Cette fonctionnalité est uniquement disponible pour les installations de serveur Exchange sur site. Pour les environnements Office 365, vous devez utiliser le Centre de sécurité et de conformité Microsoft 365, Microsoft Purview eDiscovery ou des outils de migration tiers pour exporter les données de boîte aux lettres.
Pourquoi mon exportation PST échoue-t-elle avec 'Accès refusé' lors de l'utilisation de chemins locaux ?+
Les exportations PST d'Exchange ne peuvent pas cibler des dossiers locaux comme C:\PST ou D:\Exports. Vous devez utiliser des chemins réseau UNC (\\nom_serveur\partage) car le service de réplication de boîtes aux lettres Exchange fonctionne sous le compte Exchange Trusted Subsystem, qui nécessite un accès au partage réseau. Créez un dossier partagé avec les autorisations appropriées pour les comptes Exchange Trusted Subsystem (Modification/Lecture) et SYSTEM (Contrôle total).
Combien de temps faut-il pour exporter une grande boîte aux lettres Exchange vers PST ?+
Le temps d'exportation dépend de la taille de la boîte aux lettres, des performances du serveur et de la bande passante du réseau. Une boîte aux lettres typique de 10 Go prend 2 à 4 heures, tandis que les boîtes aux lettres de plus de 50 Go peuvent prendre 12 à 24 heures ou plus. Les facteurs affectant la vitesse incluent les performances d'E/S du disque, la latence du réseau vers le partage UNC, la charge du serveur et les opérations d'exportation simultanées. Surveillez la progression en utilisant Get-MailboxExportRequestStatistics pour suivre BytesTransferred et PercentComplete.
Quelles autorisations sont nécessaires pour exporter des boîtes aux lettres Exchange vers des fichiers PST ?+
Vous devez avoir le rôle 'Mailbox Import Export' explicitement attribué à votre compte utilisateur ou groupe de rôles. Ce rôle n'est pas attribué par défaut à aucun groupe de rôles Exchange pour des raisons de sécurité. Utilisez New-ManagementRoleAssignment –Role 'Mailbox Import Export' –User 'username' pour attribuer le rôle. De plus, vous avez besoin d'un accès administratif pour créer et configurer le partage réseau avec les autorisations NTFS et de partage appropriées.
Puis-je exporter plusieurs boîtes aux lettres Exchange simultanément vers des fichiers PST séparés ?+
Oui, vous pouvez exécuter plusieurs demandes d'exportation simultanément en utilisant des boucles PowerShell ou des commandes individuelles New-MailboxExportRequest. Exchange gère les exportations simultanées via le Mailbox Replication Service (MRS). Cependant, trop d'exportations simultanées peuvent affecter les performances du serveur. Envisagez d'utiliser le paramètre -Priority pour gérer l'allocation des ressources et surveiller les performances du serveur lors des opérations d'exportation en masse afin d'éviter de surcharger votre infrastructure Exchange.
Evan Mael
Écrit par

Evan Mael

Microsoft MCSA-certified Cloud Architect | Fortinet-focused. I modernize cloud, hybrid & on-prem infrastructure for reliability, security, performance and cost control - sharing field-tested ops & troubleshooting.

Discussion

Partagez vos réflexions et analyses

Connectez-vous pour participer