EDB to PST Converter

How to Use Get-MailboxExportReqServeruest Cmdlet in Exchange Server?

info-icon  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.

Table of Contents

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-MailboxExportRequest

The 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 | fl

Parameters Reference

The following table covers all the commonly used parameters for Get-MailboxExportRequest, along with an example.

ParameterTypePurposeExample
-IdentityStringFilter by a specific export request identity (mailbox\requestname)Get-MailboxExportRequest -Identity ‘John\MailboxExport’
-BatchNameStringFilter requests by batch name assigned during New-MailboxExportRequestGet-MailboxExportRequest -BatchName ‘Batch_Jan2026’
-DatabaseStringFilter requests by source Exchange database. Cannot be used with -Identity.Get-MailboxExportRequest -Database ‘DB01’
-StatusEnumFilter by request status. Cannot be used with -Identity.Get-MailboxExportRequest -Status Failed
-MailboxStringFilter by mailbox identifier (alias, email, or GUID)Get-MailboxExportRequest -Mailbox ‘john.doe’
-ResultSizeInteger or UnlimitedLimit number of results returned. Default is 1,000.Get-MailboxExportRequest -ResultSize Unlimited
-RequestQueueStringFilter export requests by the mailbox database that is hosting the export request queueGet-MailboxExportRequest -RequestQueue DB01
-HighPrioritySwitchReturn only high priority export requestsGet-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 ValueMeaningWhat to do Next
QueuedRequest created and waiting for the Mailbox Replication Service (MRS) to pick it upWait for MRS to start processing. If stuck for over 30 minutes, check by using: Get-Service MSExchangeMailboxReplication
InProgressExport is actively running — data is being written to the PST fileMonitor progress with Get-MailboxExportRequestStatistics. Do not delete the PST file
CompletedExport finished successfully. All data has been written to the PST fileVerify PST file size. Clean up request with Remove-MailboxExportRequest
CompletedWithWarningExport finished but some items were skipped (bad items exceeded threshold)Run Get-MailboxExportRequestStatistics for BadItemLimit and BadItemsEncountered. Review skipped items
FailedExport stopped due to an error. PST file may be incompleteRun Get-MailboxExportRequestStatistics | fl FailureCode,Message to diagnose
SuspendedExport was manually suspended or auto-suspended by MRSResume with Resume-MailboxExportRequest -Identity <identity> if needed
AutoSuspendedMRS suspended the request automatically due to resource constraintsWait for MRS to resume automatically or resume manually
StalledExport 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> | FL

This 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.

ScenarioCommandWhen to Use
Check all requestsGet-MailboxExportRequestGet an overview of all export requests on the server
Check one requestGet-MailboxExportRequest -Identity ‘John\MailboxExport’Monitor a specific export request
Find all failed requestsGet-MailboxExportRequest -Status FailedIdentify failed exports for troubleshooting
Find stuck/queued requestsGet-MailboxExportRequest -Status QueuedFind exports that haven’t started processing
Find auto-suspended requestsGet-MailboxExportRequest -Status AutoSuspendedCheck if MRS resources are constrained before resuming
Check by batchGet-MailboxExportRequest -BatchName ‘Batch_Jan2026’Monitor all exports in a named batch
Check by databaseGet-MailboxExportRequest -Database ‘DB01’See all exports from a specific database
Get progress detailsGet-MailboxExportRequestStatistics -Identity ‘John\MailboxExport’ | fl PercentComplete,Status,MessageDetailed progress and error information
Get all statsGet-MailboxExportRequest -ResultSize <number>| Get-MailboxExportRequestStatistics | fl DisplayName,Status,PercentComplete,FailureCodeFull 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 checkingGet-MailboxExportRequest -Status Completed | Remove-MailboxExportRequestPipeline: 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,Message

Get the statistics for all the requests in one command.

Get-MailboxExportRequest | Get-MailboxExportRequestStatistics | Select SourceMailboxIdentity,Status,PercentComplete,BytesTransferred | Format-Table

Find failure reason for a failed request for a specified user export.

Get-MailboxExportRequestStatistics -Identity '<user>\MailboxExport' | fl FailureCode,FailureSide,Message,BadItemCount

For 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 -NoTypeInformation

This 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-MailboxExportRequest

For 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-MailboxExportRequest

Note: 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.

StatusCauseFixRelated Guide
Status: Queued for 30+ minutesMSExchangeMailboxReplication service stopped or MRS overloadedGet-Service MSExchangeMailboxReplication. If stopped: use Start-Service MSExchangeMailboxReplicationExchange Mailbox Export Stuck in Queued  
Status: Failed with FailureCodePath denied, permissions, bad items, or source mailbox offlineGet-MailboxExportRequestStatistics | fl FailureCode,Message,BadItemCount. Fix per error codeNew-MailboxExportRequest Failed  
Status: StalledSource disk I/O bottleneck or storage exhaustion on PST destinationCheck disk health on Exchange Server. Verify that PST destination has sufficient free spaceExchange Mailbox Export Stalled  
No results returnedRequest was already removed, or -ResultSize limit reachedCheck Remove-MailboxExportRequest was not run. Add -ResultSize UnlimitedN/A
‘Access Denied’ on -Database filterAccount running EMS doesn’t have Mailbox Import Export roleNew-ManagementRoleAssignment -Role ‘Mailbox Import Export’ -SecurityGroup ‘Organization Management’Mailbox Import Export Role  
Export is CompletedWithWarningBadItemLimit exceeded during export — some items were skippedGet-MailboxExportRequestStatistics | fl BadItemCount,BadItemsEncountered. Re-run with higher BadItemLimitNew-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.    

The command will load all the mailbox export requests that are running and executed on the server.
The Get-MailboxExportRequest will show the job definition and status, while the Get-MailboxExportRequestStatistics will give the actual job progress with all the details like timestamp and other metrics.
The Get-MailboxExportRequestStatistics will give you the percentage of the mailbox export progress.
You will need to use the Get-MailboxExportRequest with the Status set to failed. For example, Get-MailboxExportRequest -Status Failed
When you get no results, this could most probably be due to the RBAC role not being assigned or there were no exports.
Yes. QueuedTimestamp is a property returned by the cmdlet, not an input parameter. To filter by date, use Get-MailboxExportRequest | Where-Object {$_.QueuedTimestamp -gt (Get-Date).AddDays(-7)}
The parameter filters the export request based on the mailboxes’ source database.
Run Get-MailboxExportRequest without parameters or with -Mailbox to find the request and then note the value in the Name column. The Identity format is Alias\RequestName.
No, the command is exclusive for the on-premises Exchange Server.
You should use the combination of the Get-MailboxExportRequest and the Get-MailboxExportRequestStatistics command.
After the exports are completed and validated, you should clean the completed exports from the list by using the Remove-MailboxExportRequest command.
This software can come in handy, if the database is offline, RBAC is failing to assign the role, or the services are not running.

About The Author

Anubhuti Sinha linkdin

Anubhuti's passion for technology shines through her knowledge of Microsoft Exchange Server. She excels at managing, and troubleshooting this powerful platform. She has a bachelor’s degree in technolo...

Google Trust
Related Posts

WHY STELLAR® IS GLOBAL LEADER

Why Choose Stellar?

  • 0M+

    Customers

  • 0+

    Years of Excellence

  • 0+

    R&D Engineers

  • 0+

    Countries

  • 0+

    PARTNERS

  • 0+

    Awards Received

BitRaser With 30 Years of Excellence
Technology You Can Trust
Data Care Experts since 1993
×