How to Use Get-MailboxExportReqServeruest Cmdlet in Exchange Server?
Our content follows trusted Editorial Standards - accurate & unbiased.
Summary:
In Exchange Server, the Get-MailboxExportRequest cmdlet is used to know the status of mailbox export requests, which were created using the New-MailboxExportRequest cmdlet. It does not create, pause, or delete export requests. Its main purpose is to only return the status of the exports. To run this cmdlet, the Mailbox Import Export RBAC role must be assigned. Otherwise, it returns no results or throws an unrecognized command error. In this comprehensive guide, we will be explaining this cmdlet in detail and how to use it.
When you export Exchange mailboxes to PST format, you use the New-MailboxExportRequest cmdlet. But this command doesn’t display any progress or status of export requests. To view the status, you need to use the Get-MailboxExportRequest cmdlet. The command will return the status as Queued, InProgress, Completed, or Failed. This will help you identify the stuck exports and get request identities needed for other cmdlets.
For a detailed progress metrics (percentage complete, bytes transferred, error codes), you can use the Get-MailboxExportRequestStatistics cmdlet.
What is Get-MailboxExportRequest?
The Get-MailboxExportRequest cmdlet, as the name implies, reads and displays the status of user mailbox, user archive and shared mailbox export request records which are stored in Exchange’s internal database. The command is used after you run the command New-MailboxExportRequest to check if exports are queued, running, completed, or failed. These statuses appear next to the export request.
You should note that it does not create, resume, or remove any exports from the list. The command is only for display and status purposes. If you want to resume a stopped export, use Resume-MailboxExportRequest. To create, use New-MailboxExportRequest and to remove a request, use Remove-MailboxExportRequest.
The command is available in Exchange Server 2010 SP1 and later. It cannot be used in Exchange Online/Microsoft 365.
If the Get-MailboxExportRequest command returns no output, the most common reason is that the Mailbox Import Export role has not been assigned or there were no exports executed. You should first assign it using the below command.
New-ManagementRoleAssignment -Role 'Mailbox Import Export' -SecurityGroup '<security group name>'Syntax and Basic Usage
The command can be used on its own in the Exchange Management Shell (EMS).
Get-MailboxExportRequestThe command’s full parameters are:
Get-MailboxExportRequest [[-Identity] <MailboxExportRequestIdParameter>] [-BatchName <String>] [-Database <DatabaseIdParameter>] [-Mailbox <MailboxOrMailUserIdParameter>] [-Status <RequestStatus>] [-ResultSize <Unlimited>]For full parameter reference, see: Get-MailboxExportRequest — Microsoft Learn.
Let’s know a bit about the common parameters used with the command.
To get all current export requests on the server, use it without parameters.
To get the status of a specific export request, run the command as given below.
Get-MailboxExportRequest -Identity '<user>\MailboxExport'If you want to list all the details of the export, you can use the pipe to Format-List (FL) to expand all properties. This will list parameters such as Batch Name, the file path, database, and other details.
Get-MailboxExportRequest | flParameters Reference
The following table covers all the commonly used parameters for Get-MailboxExportRequest, along with an example.
| Parameter | Type | Purpose | Example |
| -Identity | String | Filter by a specific export request identity (mailbox\requestname) | Get-MailboxExportRequest -Identity ‘John\MailboxExport’ |
| -BatchName | String | Filter requests by batch name assigned during New-MailboxExportRequest | Get-MailboxExportRequest -BatchName ‘Batch_Jan2026’ |
| -Database | String | Filter requests by source Exchange database. Cannot be used with -Identity. | Get-MailboxExportRequest -Database ‘DB01’ |
| -Status | Enum | Filter by request status. Cannot be used with -Identity. | Get-MailboxExportRequest -Status Failed |
| -Mailbox | String | Filter by mailbox identifier (alias, email, or GUID) | Get-MailboxExportRequest -Mailbox ‘john.doe’ |
| -ResultSize | Integer or Unlimited | Limit number of results returned. Default is 1,000. | Get-MailboxExportRequest -ResultSize Unlimited |
| -RequestQueue | String | Filter export requests by the mailbox database that is hosting the export request queue | Get-MailboxExportRequest -RequestQueue DB01 |
| -HighPriority | Switch | Return only high priority export requests | Get-MailboxExportRequest -HighPriority |
Status Values Explained
The table below explains each status value, meaning of the status, and the action that can be taken to resolve the issue.
| Status Value | Meaning | What to do Next |
| Queued | Request created and waiting for the Mailbox Replication Service (MRS) to pick it up | Wait for MRS to start processing. If stuck for over 30 minutes, check by using: Get-Service MSExchangeMailboxReplication |
| InProgress | Export is actively running — data is being written to the PST file | Monitor progress with Get-MailboxExportRequestStatistics. Do not delete the PST file |
| Completed | Export finished successfully. All data has been written to the PST file | Verify PST file size. Clean up request with Remove-MailboxExportRequest |
| CompletedWithWarning | Export finished but some items were skipped (bad items exceeded threshold) | Run Get-MailboxExportRequestStatistics for BadItemLimit and BadItemsEncountered. Review skipped items |
| Failed | Export stopped due to an error. PST file may be incomplete | Run Get-MailboxExportRequestStatistics | fl FailureCode,Message to diagnose |
| Suspended | Export was manually suspended or auto-suspended by MRS | Resume with Resume-MailboxExportRequest -Identity <identity> if needed |
| AutoSuspended | MRS suspended the request automatically due to resource constraints | Wait for MRS to resume automatically or resume manually |
| Stalled | Export is waiting on a resource (usually disk I/O or network) | Check source disk health. See: Exchange Mailbox Export Stalled |
When an export’s status shows CompletedWithWarning, it does not mean the export has failed. The PST file was created but some items were skipped due to corruption or bad item limits. You should always check BadItemCount in Get-MailboxExportRequestStatistics with the FL parameter after a CompletedWithWarning result in the export.
Get-MailboxExportRequestStatistics -Identity <user> | FLThis will return all the information related to the export. You should look for BadItemFilter, BadItemsEncountered, LargeItemLimit, and LargeItemsEncountered.
Common Monitoring Scenarios
The following table covers the most common scenarios where you can use the Get-MailboxExportRequest cmdlet.
| Scenario | Command | When to Use |
| Check all requests | Get-MailboxExportRequest | Get an overview of all export requests on the server |
| Check one request | Get-MailboxExportRequest -Identity ‘John\MailboxExport’ | Monitor a specific export request |
| Find all failed requests | Get-MailboxExportRequest -Status Failed | Identify failed exports for troubleshooting |
| Find stuck/queued requests | Get-MailboxExportRequest -Status Queued | Find exports that haven’t started processing |
| Find auto-suspended requests | Get-MailboxExportRequest -Status AutoSuspended | Check if MRS resources are constrained before resuming |
| Check by batch | Get-MailboxExportRequest -BatchName ‘Batch_Jan2026’ | Monitor all exports in a named batch |
| Check by database | Get-MailboxExportRequest -Database ‘DB01’ | See all exports from a specific database |
| Get progress details | Get-MailboxExportRequestStatistics -Identity ‘John\MailboxExport’ | fl PercentComplete,Status,Message | Detailed progress and error information |
| Get all stats | Get-MailboxExportRequest -ResultSize <number>| Get-MailboxExportRequestStatistics | fl DisplayName,Status,PercentComplete,FailureCode | Full progress report of all requests. You should add the ResultSize to limit the scope of results where large number of requests can cause timeouts on the server |
| Remove after checking | Get-MailboxExportRequest -Status Completed | Remove-MailboxExportRequest | Pipeline: Check completed and then remove in one step |
Use Get-MailboxExportRequestStatistics for Detailed Progress
For further investigation, you can use the Get-MailboxExportRequestStatistics command, which will provide full details of the export. Let’s explore the command and its uses.
Basic statistics for a single request with basic details.
Get-MailboxExportRequestStatistics -Identity '<user>\MailboxExport'These are the key fields to check during an active export.
Get-MailboxExportRequestStatistics -Identity '<user>\MailboxExport' | fl PercentComplete,Status,BytesTransferred,ItemsTransferred,BadItemCount,MessageGet the statistics for all the requests in one command.
Get-MailboxExportRequest | Get-MailboxExportRequestStatistics | Select SourceMailboxIdentity,Status,PercentComplete,BytesTransferred | Format-TableFind failure reason for a failed request for a specified user export.
Get-MailboxExportRequestStatistics -Identity '<user>\MailboxExport' | fl FailureCode,FailureSide,Message,BadItemCountFor full parameter reference, read: Get-MailboxExportRequestStatistics — Microsoft Learn.
Bulk Monitoring and Pipeline Examples
The combination of different commands with pipelines are useful when managing large number of export requests to get a better scenario of the exports and for automating the exports reporting.
Generate a full status report for all requests in a CSV file.
Get-MailboxExportRequest | Get-MailboxExportRequestStatistics | Select DisplayName,Status,PercentComplete,BytesTransferred,BadItemCount,FailureCode | Export-Csv -Path C:\Reports\ExportStatus.csv -NoTypeInformationThis below command will find and resume all suspended requests. If it returns no results, this means that there are no suspended mailbox exports.
Get-MailboxExportRequest -Status Suspended | Resume-MailboxExportRequestFor finding requests older than 7 days that are still in progress, use the below command. These exports are most probably stuck. This is a very good report you can generate as there could be other reasons why the export is stuck.
Get-MailboxExportRequest -Status InProgress | Where-Object {$_.QueuedTimestamp -lt (Get-Date).AddDays(-7)}When the requests are completed, the Exchange Server will not clean the requests from the list. To do this, you can use the below command to remove all exports which are completed.
Get-MailboxExportRequest -Status Completed | Remove-MailboxExportRequestNote: You should always verify the PST files exist at the destination path before removing completed export requests. This is a destructive pipeline that removes all completed request records in one command. It is recommended to always run Get-MailboxExportRequest -Status Completed first to review the list and then use Remove-MailboxExportRequest only after confirming.
Troubleshooting the Failed or Suspended Export Requests
The table below can help you in the diagnostics and troubleshooting failed or suspended exports displayed by Get-MailboxExportRequest.
| Status | Cause | Fix | Related Guide |
| Status: Queued for 30+ minutes | MSExchangeMailboxReplication service stopped or MRS overloaded | Get-Service MSExchangeMailboxReplication. If stopped: use Start-Service MSExchangeMailboxReplication | Exchange Mailbox Export Stuck in Queued |
| Status: Failed with FailureCode | Path denied, permissions, bad items, or source mailbox offline | Get-MailboxExportRequestStatistics | fl FailureCode,Message,BadItemCount. Fix per error code | New-MailboxExportRequest Failed |
| Status: Stalled | Source disk I/O bottleneck or storage exhaustion on PST destination | Check disk health on Exchange Server. Verify that PST destination has sufficient free space | Exchange Mailbox Export Stalled |
| No results returned | Request was already removed, or -ResultSize limit reached | Check Remove-MailboxExportRequest was not run. Add -ResultSize Unlimited | N/A |
| ‘Access Denied’ on -Database filter | Account running EMS doesn’t have Mailbox Import Export role | New-ManagementRoleAssignment -Role ‘Mailbox Import Export’ -SecurityGroup ‘Organization Management’ | Mailbox Import Export Role |
| Export is CompletedWithWarning | BadItemLimit exceeded during export — some items were skipped | Get-MailboxExportRequestStatistics | fl BadItemCount,BadItemsEncountered. Re-run with higher BadItemLimit | New-MailboxExportRequest Failed |
When Get-MailboxExportRequest is not Enough
There are instances when the native method to export mailboxes and other resources from an Exchange Server would not be enough. Both the import or export commands will not be run if the server is not running or the database is not mounted. In addition, the command – Get-MailboxExportRequest – may show the Status: Failed with database-related error codes.
In such cases, you can use Stellar Converter for EDB to export the mailboxes to PST. It can open the EDB directly without needing a running export service and from an online database (without the need to unmount it). The software supports any version of Exchange Server database.
Stellar Converter for EDB does not require an RBAC role assigned unlike the commands. Even if the native export command is complete, there is a risk that the exported PST file may be corrupted or incomplete. With Stellar Converter for EDB, you can have a full HTML pre-export preview to verify data before conversion.
This software not only exports user mailboxes, user archive, or shared mailboxes but it can also export disabled mailboxes, public folders, and deleted/purged items.
For detailed information on exporting Exchange mailboxes to PST, see the Exchange mailbox export guide.
Conclusion
When you export mailboxes to PST using the New-MailboxExportRequest cmdlet in Exchange Server, it doesn’t show the status of the export requests. You have to use the Get-MailboxExportRequest cmdlet to know the status. This guide explains how to use this cmdlet, along with various parameters. However, to run this cmdlet, you need to have the Mailbox Import Export RBAC role, mounted database, and a working Exchange Server.