Exporting and Importing PST Files via Exchange Management Shell
The following steps explain how to export and import .PST files using the Exchange Management Shell (EMS). These operations are asynchronous and may take some time to complete.
Export a Mailbox to PST
1. Grant export permissions
Before starting, assign the required role to the user:
New-ManagementRoleAssignment –Role "Mailbox Import Export" –User acs-hosting\Admin
Important: Restart EMS to apply the new permissions.
2. Start the export process
New-MailboxExportRequest -Mailbox mailboxname -FilePath \\ex2010\export\filename.pst
This command initiates an asynchronous export process.
3. Check export status
Get-MailboxExportRequest
Filter for completed requests:
Get-MailboxExportRequest | Where {$_.Status -eq "Completed"}
4. Remove completed export requests
Remove-MailboxExportRequest
Remove all completed requests:
Get-MailboxExportRequest | Where {$_.Status -eq "Completed"} | Remove-MailboxExportRequest
Import a PST File into Exchange
1. Start the import process
New-MailboxImportRequest -FilePath \\HOSTNAME\sharename\file.pst -Mailbox mailboxname
2. Monitor import status
Get-MailboxImportRequest
View completed imports:
Get-MailboxImportRequest | Where {$_.Status -eq "Completed"}
3. Remove import requests
Remove completed requests:
Get-MailboxImportRequest | Where {$_.Status -eq "Completed"} | Remove-MailboxImportRequest
Remove failed requests:
Get-MailboxImportRequest | Where {$_.Status -eq "Failed"} | Remove-MailboxImportRequest
4. Generate report for completed imports
Get-MailboxImportRequest -Status Completed | Get-MailboxImportRequestStatistics -IncludeReport | Format-List > c:\AllImportReports.txt
5. Bulk import from folder
Dir DC2APST_To_Import*.pst | %{
New-MailboxImportRequest -Name RecoveredPST -BatchName Recovered -Mailbox $_.BaseName -FilePath $_.FullName -TargetRootFolder Imported_Mail
}
Note
To allow up to 200 corrupt items during import, use:
New-MailboxImportRequest -FilePath \\server\share\file.pst -Mailbox mailboxname -BadItemLimit 200 -AcceptLargeDataLoss