Exchange 2010 (Post SP1) Bulk Importing Mail From pst Files


KB ID 0000443 Dtd 01/04/13


If you have mail in .pst format that you would like to import, either exported via ExMerge from an older Exchange server, or exported via Outlook, then the process for importing that mail into Exchange 2010 (Post SP1) has changed.

Before SP1 you would have to install a copy of Outlook on the Exchange server and use a PowerShell command that looks like this (once you had granted Import/Export rights);

BEFORE Exchange 2010 SP1

Get-Mailbox | Import-Mailbox –PSTFolderPath C:Folder_Containing_PST_Files

However try that after SP1 and you will get an error message, saying that Import-Mailbox is not a commandlet. That's because now you no longer use this command you use "New-MailboxImportRequest", and you also no longer need Outlook installing on the server.

Note: To Import successfully, the .pst file must have the same name as the alias of the target mailbox.


Commands Required

Universal Secirity Group

1. Once you have created a "Universal Security Group" in this example called "Mailbox_Import" then assign the mailbox import/export roles with the following command;

New-ManagementRoleAssignment –Name “MailboxImportExport” –SecurityGroup “Mailbox_Import” –Role “Mailbox Import Export”

Note: If you create a 'global security group' you will see an error when you try to import.

2. Remember to log off and back on as the user in question before proceeding.

3. To Start the bulk import use the following command, (all you should need to change is the UNC path to the folder with the .pst files in);

Dir DC2APST_To_Import*.pst | %{ New-MailboxImportRequest -Name BulkPSTImport -BatchName Recovered -Mailbox $_.BaseName -FilePath $_.FullName}

Import PST to Exchange 2013

4. Check on progress with the following four commands;

Get-MailboxImportRequest -Status Completed
Get-MailboxImportRequest -Status Queued
Get-MailboxImportRequest -Status InProgress
Get-MailboxImportRequest -Status Failed

Import PST to Exchange 2013 Completed

5. When finished, flush the requests with;

Get-MailboxImportRequest -Status Completed | Remove-MailboxImportRequest
Get-MailboxImportRequest -Status Failed | Remove-MailboxImportRequest

Import PST to Exchange 2013 Completed

Note: Enter "A" To accept multiple removes at once.

If New-MailboxImportRequest Fails

Import PST to Exchange 2013 Failed

Firstly you need to find out why it failed, to do that you need to generate an error log.

Get-MailboxImportRequest | Get-MailboxImportRequestStatistics -IncludeReport | fl >errorlog.txt

Import PST to Exchange 2013 Failiure Log

Then open that log file, to see what it says.

Common Errors

FailureType : TooManyBadItemsPermanentException
Message : Error: This mailbox exceeded the maximum number of corrupted items that were specified for this move request.

Import PST to Exchange 2013 Failiure Log

This happens when it sees items in the mailbox it does not like, or considers corrupt. To get round this problem, import the .pst file on its own with the following command;

New-MailboxImportRequest -Mailbox joe.soap -FilePath "DC2APST_TO_IMPORTjoe.soap.PST" -BadItemLimit 200 -AcceptLargeDataLoss


FailureType : MapiExceptionShutoffQuotaExceeded
Message : Error: MapiExceptionShutoffQuotaExceeded: Unable to save changes. (hr=0x80004005, ec=12 45)


This happens if you have a limit on the mailbox size, and to import from this PST file would break that restriction.

Exchange 2010 Mailbox Limits

FailureType : MailboxReplicationPermanentException
Message : Error: serverfolderfilename.pst --> Page map offset {number} is greater than buffer length {number}.

Page map offset is greater than buffer length

This happens because you exported a PST file either using ExMerge or an older version of Outlook and it's too big. Make sure it's well under 2GB.


If you want to import the "Old" mail into a folder within the target users mailbox, you can use the following command instead of the one in step 3;

Dir DC2APST_To_Import*.pst | %{ New-MailboxImportRequest -Name RecoveredPST -BatchName Recovered -Mailbox $_.BaseName -FilePath $_.FullName -TargetRootFolder Imported_Mail}

Related Articles, References, Credits, or External Links

Original article written 11/05/11

Exchange 2000/2003 Exporting mailbox's with ExMerge

Exchange 2007 - Export Mailbox's to PST files

Author: Migrated

Share This Post On