With Exchange Server 2010 SP1, Microsoft introduced the Exchange Management Shell tool with several PowerShell cmdlets to efficiently manage the Exchange Servers. New-MailboxExportRequest is one of the most commonly used PowerShell cmdlets, which allows administrators to export single or multiple mailboxes to PST format for backup or migration purposes.
The cmdlet can be used with multiple parameters and switches to filter the mail items from the exported PST file. For instance, you can use the -ContentFilter parameter with additional switches to include/exclude folders or based on a specified date range.
New-MailboxExportRequest -ContentFilter {(Received -lt '08/17/2019') -and (Received -gt '11/30/2019')} -Mailbox "Administrator" -FilePath \\ex01\PSTFiles\Administrator.pst
A downside of this cmdlet is that the reporting is a bit short. When the export fails, you will have to use the Get-MailboxExportRequest cmdlet to check if the export is in progress, completed, or failed.
The completed exports are not automatically purged from the report. Therefore, if you're exporting a good number of mailboxes, you need to scroll down and look for the one that failed.
This usually happens due to the following reasons:
- You do not have the required permissions or roles assigned.
- You do not have the access to the shared folder path.
- There is a problem with the particular mailbox.
- The database where the mailbox is stored is inconsistent.
- The cmdlet has wrong parameters or switches.
- The command syntax is wrong.
- Lack of disk space on the server or where you are exporting the PST file.
- The database containing the mailbox is not mounted.
- The mailbox is disconnected.
- An issue with the server.
- Use of incorrect filters.
- Mailbox data is not available.
- Exporting mailboxes from the database that does not exist or with the wrong name.
Solutions to Fix New-MailboxExportRequest Failed Status
After checking the failed mailbox export requests using the Get-MailboxExportRequest cmdlet, clear up the completed exports by running the following command.
Get-MailboxImportRequest -Status Completed | Remove-MailboxExportRequest
Now the report of what went wrong is clear and you can only see the failed ones.
You might encounter an issue or error message saying,
Can't connect to the mailbox database. Check that it is accessible and then try again.
This happens when the exports are done from a mailbox database that doesn't exist.
To further investigate the issue and find more information, use the Get-MailboxExportRequestStatistics with Get-MailboxExportRequest cmdlet.
Get-MailboxExportRequest -status failed | Get-MailboxExportRequestStatistics -IncludeReport | Format-List > \\ex01\pstfiles\report.txt
This will generate a detailed report and save it at the shared folder path (specified UNC path location). Once the report is generated, open it in any text editor app. Go through the report to investigate and identify the root cause. The report file may also contain several logs. You can carefully look into it to find out the cause.
If you drill down the log file, you may find or stumble upon several errors that may have led to the failure of the New-MailboxExportRequest cmdlet. In this case, the problem is with the content filtering of the date.
From the Failure Type, you can quickly identify the problem in this case. It says, ‘InvalidContentFilterPermanentException.’ If you further dig down, you can find more information on the -ContentFilter parameter used.
Although everything looks good at first, the date format is incorrect when you check it thoroughly. The time and date don't correspond to the time and location of the server. Thus, you need to correct the date and re-execute the New-MailboxExportRequest cmdlet to export the mailbox(es) again.
After fixing the date, you’re able to export the mailbox content successfully to a PST file at a shared folder location without encountering the error.
But what if this isn’t the reason for your New-MailboxExportRequest failure?
Here are some more solutions to investigate and fix the problem.
- Check that you have the required permissions and roles assigned. You can run the following cmdlet to check whether you have the required Mailbox Import Export role assigned.
Get-ManagementRoleAssignment –Role “Mailbox Import Export” | fl userThis will display the user accounts and groups having the Mailbox Import Export role assigned. If your username is not on the list, use the New-ManagementRoleAssignment cmdlet to assign the required role.
New-ManagementRoleAssignment –Role “Mailbox Import Export” –User “Your User Name”
Check the screenshot below for more clarity and syntax.
- Create a new shared folder path location with access to Exchange Trusted Subsystem.
- Verify the command syntax before executing.
- Check that the filters used with additional parameters are correct.
- Check the database status. This will help verify if the database is mounted and available. You can’t export mailboxes from a dismounted or offline Exchange database file (EDB) to PST. Use the following cmdlet to verify the status.
Get-MailboxDatabase
Then run the following command with the database name to check the database status, i.e., whether the database is mounted and online or dismounted and offline.
If the database is not online, mount it and then use the New-MailboxExportRequest cmdlet to export the mailboxes to PST format.
Read our latest guide on how to use the New-MailboxExportRequest PowerShell cmdlet to avoid common mistakes that may lead to the New-MailboxExportRequest command failure.
Final Thoughts
Mailbox export issues can be tricky to solve. However, you can save time and quickly export all your mailboxes by using a reliable third-party tool, such as Stellar Converter for EDB. The software can open both online or offline Exchange mailbox databases, extract mailboxes, and save them to PST format with a few clicks. You can also save individual or multiple mail items from mailboxes to other common formats, such as HTML, EML, and MSG. You don’t need any additional permissions. You can also connect to an online EDB database without dismounting the database from Exchange. The best part is that the software supports all versions of Exchange Server - from Exchange 5.5 to 2019, allowing you to export mailboxes from both old and new Exchange servers. If required, you can also use the application to directly export the mailboxes from the offline database to a new live Exchange Server database or Office 365 tenant.