How to Show Mailbox Repair Request Status – Get-MailboxRepairRequest Cmdlet

Summary: Get-MailboxRepairRequest PowerShell cmdlet helps administrator track the status of mailbox repair request in Exchange Management Shell. In this post, you will learn how to use the cmdlet to view status of the mailbox repair and an Exchange database repair tool to fix the mailbox when the PowerShell cmdlet fails.

There are many reasons why your mailbox might need a repair but the most common reason is corruption. You can also try a repair on a mailbox when you have exhausted all possible solutions to an annoying issue and the last resort would be a repair.
A repair on a mailbox can be executed by New-MailboxRepairRequest PowerShell cmdlet example as below.

New-MailboxRepairRequest ?Mailbox tony@contoso.com ?CorruptionType FolderView

Note, the Corruption type can be of type into SearchFolder, AggregateCounts, ProvisionedFolder or FolderView. When repairing a mailbox the important thing is to get a view of its progress. This can be done by using the Get-MailboxRepairRequest PowerShell cmdlet. If the status is in progress, you can wait for it to complete and may check the status after a while. But sometimes, the repair request get stuck and remains in progress status. In such a case, you can use an Exchange recovery software, such as Stellar Repair for Exchange to repair database and mailboxes. It fixes problem with mailboxes and allows you to save them in PST format. Once repaired, you can import the PST to your Live Exchange server database and restore mailbox connectivity.

Get-MailboxRepairRequest

Let?s see the syntax of the command as it quite straight forward in Exchange 2013 but if you have executed a number of repair jobs on a mailbox and you need to specifically see that job, you would need to get the identity of the job.

To get the GUID of a user you would need to run the PowerShell cmdlet Get-MailboxRepairRequest which can be used as below

Get-MailboxRepairRequest ?Mailbox "Administrator" | FL

This will list all the jobs in full details which will also return the GUID of the job. Then you can execute the Get-MailboxRepairRequest command with the ?Identity parameter. As below and with the | FL appended for futher details.

Get-MailboxRepairRequest ?Identity "ab74a9e5-6f45-4f5f-8e88-0a6d965da4ce\6211fb09-4e5c-4eb7-89b0-c179a53aaf7d\04912abc-63b7-4a83-a9dc-7d504f43c7e8"

What if Job State: Failed?

This is how to execute a repair request and get the information on the repair request in summary and in full details. What if after running the job and confirming the state of it, nothing happens and you get Job State: Failed? What if the mailbox remains corrupted and damaged?

An option if the job fails is to run it against every corruption type by separating them using a command as below.

New-MailboxRepairRequest ?Mailbox tony@contoso.com ?CorruptionType SearchFolder, FolderView, AggregateCounts, ProvisionedFolder

What if Command Failed?

First option:

If this fails then you would either need to restore the mailbox from a healthy backup if you have granular backup. If this fails and the issue remains, another option would be to export all the data to PST using the PowerShell cmdlet New-MailboxExportRequest, disable the mailbox, delete it permanently, re-create the mailbox and restore from the PST file using the New-MailboxImportRequest cmdlet. There might some repercussions of this.

Second option:

If this fails again and the problem persists, you would need to restore using other methods because you cannot just attach an EDB file restored from backup. To restore a mailbox from an EDB backup you would need to restore the whole mailbox database to an alternative location. Before running this you need to make sure you have enough space and resources. After the mailbox database has been restored you would need to change its state from a dirty shutdown by using EseUtil /mh to identify the missing logs and the the /ml parameter to change it to a clean shutdown. After mounting the database you would need to use the Restore-Mailbox PowerShell cmdlet to recover the mailbox. The only problem with this is that from the backup onwards any changes, new mails and other items will be lost as the mailbox will be overwritten.

Third option:

On the other hand you might need the help of a trustworthy third party Exchange Server Recovery application which can be used to minimize the administrative effort and repair the mailbox. Stellar Repair for Exchange lets you connect to a live Exchange Server, connect to the mailboxes and repair them. If you don?t feel comfortable with a repair and you need to restore the mailbox from yesterday?s backup you would need to restore the EDB file from the backup, attach it to the application and make an export/import automatically into Exchange.

The application is also suitable for any occasion on your Exchange Server, being migration from an old EDB file of an old Exchange system and import them directly to a live Exchange database. Also you can export data from an EDB file to Office 365. Any Exchange version from 5.5 to Exchange 2019 are supported.

Stellar Repair for Exchange is the right application to keep in the IT team to support and recover from any kind of disaster and minimize the recovery time.

Related Post