New-MailboxRepairRequest detects and fixes mailbox corruption in on-premises Exchange. Microsoft lists it for Exchange 2010, 2013, 2016, 2019 and Subscription Edition. One request repairs a single mailbox or every mailbox in a database. Add the DetectOnly switch first to list problems without fixing them. Microsoft states that a started repair stops only when you dismount the database.
Search returns wrong results. Folder counts look off. Views show the wrong items. Exchange administrators meet these problems when a mailbox has corruption inside the database. Microsoft ships one cmdlet for this task.
Facts follow the Microsoft Learn pages for New-MailboxRepairRequest and Get-MailboxRepairRequest. Both cmdlets exist only in on-premises Exchange.
What is New-MailboxRepairRequest?
Microsoft describes New-MailboxRepairRequest as the cmdlet for finding and repairing corrupt mailbox data. One request repairs a single mailbox or all mailboxes in a database. Mailbox access stops only for the mailbox under repair.
Microsoft sets two limits to protect server performance. One database-level repair is active on a server at a time. Up to 100 mailbox-level repairs are active on a server at a time.
Which Corruption Types can You Repair?
Every request needs the CorruptionType parameter. It names the problem to find and fix. Microsoft lists more than thirty values. These four match the most common complaints.
| CorruptionType | What Microsoft says |
|---|---|
| ProvisionedFolder | Provisioned folders incorrectly point into non-provisioned parent folders. |
| SearchFolder | Search folder corruption. |
| AggregateCounts | Aggregate counts on folders do not reflect correct values. |
| FolderView | Views on folders do not return correct contents. |
Microsoft marks many values to use by themselves. Its own examples still combine ProvisionedFolder, SearchFolder, AggregateCounts and FolderView in one request. Check the page for your Exchange version before you combine values.
How to Repair a Mailbox With PowerShell?
Start with a detection pass. DetectOnly reports errors without fixing them.
New-MailboxRepairRequest -Mailbox ayla -CorruptionType ProvisionedFolder,SearchFolder -DetectOnly
New-MailboxRepairRequest -Mailbox tony@contoso.com -CorruptionType FolderView
New-MailboxRepairRequest -Database MBX-DB01 -CorruptionType AggregateCounts
New-MailboxRepairRequest -Mailbox ayla -CorruptionType FolderView -Archive
- -Mailbox repairs one mailbox. -Database repairs every mailbox in a database. Both parameters never work together.
- -Archive adds the archive mailbox. Without it Exchange processes only the primary mailbox.
- -StoreMailbox narrows a database request to one mailbox GUID. Get the GUID with Get-MailboxStatistics.
- -Force hides warnings and starts the repair at once.
- -WhatIf shows what would happen without making changes.
How to Check the Repair Status?
Get-MailboxRepairRequest returns the mailbox GUID, the corruption type, the progress as a percentage and the number of corruptions found and fixed. Status shows as Queued, Running, Succeeded or Failed. Add -Detailed with an Identity to list the tasks.
Get-MailboxRepairRequest -Mailbox "Ann Beebe" | Format-List
Get-MailboxDatabase | Get-MailboxRepairRequest | Format-Table Identity
Can You Stop a Repair That has Started?
No. Microsoft states that a started repair cannot stop unless you dismount the database. Plan the repair window before you execute a database-level request.
What does Microsoft Not Say?
Microsoft does not name the role that grants permission on that page. It points to the general permissions page. It gives no causes for any corruption type. It also gives no backup advice.
Older posts call the cmdlet a successor of the Isinteg tool and tie it to Exchange 2016 only. Microsoft says neither. It lists Exchange 2010 through Subscription Edition.
Related reading: Exchange Server disaster recovery plan and how to restore a Microsoft 365 mailbox from backup.
Frequently Asked Questions
What is New-MailboxRepairRequest in Exchange?
New-MailboxRepairRequest is an Exchange PowerShell cmdlet that finds and repairs mailbox corruption. Microsoft lists no Exchange Online support.
Does New-MailboxRepairRequest Work in Exchange Online?
No. Microsoft states that the cmdlet is available only in on-premises Exchange.
Do You Need to Dismount the Database?
No. Mailbox access stops only for the mailbox under repair. Dismounting is the only way to stop a repair that has started.
How do You Find Corruption Without Fixing It?
Add the DetectOnly switch. Exchange reports the errors and fixes none.
How do You Repair an Archive Mailbox?
Add the Archive switch to a mailbox request.
Key Takeaways
- New-MailboxRepairRequest repairs mailbox corruption and exists only on premises.
- One request repairs one mailbox or every mailbox in a database.
- DetectOnly lists errors without fixing them.
- Get-MailboxRepairRequest shows progress and the repair status.
- Only a dismount stops a repair that has started.
Sources and References
Facts follow Microsoft Learn.
- New-MailboxRepairRequest (Microsoft Learn) learn.microsoft.com
- Get-MailboxRepairRequest (Microsoft Learn) learn.microsoft.com