Summary: The New-MailboxRepairRequest PowerShell cmdlet is used to detect and fix issues with a specific mailbox or all mailboxes in an Exchange Server database. In this article, you will learn how to use the New-MailboxRepairRequest cmdlet to repair the mailboxes. We will also mention an advanced Exchange repair tool that can repair severely corrupted Exchange database in just a few simple steps.
Exchange mailboxes or database can get corrupted due to improper server shutdown, sudden power failure, abrupt system shutdown, virus attacks, moving mailboxes to another database, or various other reasons. In such a case, users with corrupted mailboxes face issues when accessing their mailbox data. Some common issues that users may encounter include outdated mail folders, missing mail folders or mail items, delay in sending or receiving emails, problem with search functionality, and inaccessible mail folders.
To resolve such issues, you (as an administrator) need to repair the corrupted user mailboxes. For this, you can use the New-MailboxRepairRequest cmdlet in Exchange Server. This cmdlet can help you to detect corruption issues in the user mailboxes and fix them. With this cmdlet, you can repair a specific mailbox or all the mailboxes in a particular database. This cmdlet is available in Exchange Server 2010, 2013, 2016, and 2019. With the New-MailboxRepairRequest cmdlet, you can use the following parameters:
- SearchFolder: To fix Search Folder corruption issues.
- AggregateCounts: To fix issues with Aggregate Counts on folders that don’t reflect the correct values or number of mail items.
- FolderView: To fix issues with views on folders that are not returning accurate content.
- ProvisionedFolder: To fix folders that are not pointing correctly to the parent folders.
- DetectOnly: To get the report on errors but not to fix them.
Now let’s see how to use the New-MailboxRepairRequest cmdlet to repair a single and multiple mailboxes in Exchange Server.
Process to Use the New-MailboxRepairRequest PowerShell Cmdlet in Exchange Server
Before using this cmdlet, you need to ensure that the Databases and Mail Recipients roles are assigned to the user account you will be using.
After assigning the required roles and permissions, you can run the New-MailboxRepairRequest cmdlet as given below to detect corruption issues in a specific mailbox.
New-MailboxRepairRequest -Mailbox “user’s email ID” -CorruptionType SearchFolder, AggregateCounts, ProvisionedFolder, FolderView -DetectOnly
Note: You can also use the username in the cmdlet, instead of the email ID.
The above command will only detect the issues in the specified mailbox. It does not fix the issues found in the mailbox.
Now, you can run the New-MailboxRepairRequest cmdlet without the –DetectOnly parameter (as given below) to fix the problems with the mailbox.
New-MailboxRepairRequest -Mailbox “user’s email ID” -CorruptionType SearchFolder, AggregateCounts, ProvisionedFolder, FolderView
You can also use the New-MailboxRepairRequest cmdlet to fix issues related to a specific parameter for all mailboxes in a database. For example,
New-MailboxRepairRequest -Database DB01 -CorruptionType AggregateCounts
The above command will repair the AggregateCounts for all mailboxes in the database, named DB01.
The New-MailboxRepairRequest cmdlet doesn’t provide any progress status or feedback information. To check the status of repair request, you need to use the Get-MailboxRepairRequest cmdlet (see the below example).
Get-MailboxRepairRequest –Database <Name of the database>
Things to remember when using the New-MailboxRepairRequest cmdlet:
- When the NewMailboxRepairRequest cmdlet is running, the access to the mailbox being repaired is disrupted for the repair duration.
- It works on mounted databases only. You are not required to dismount the database. This allows other users to continue accessing their mailboxes in the database and use their email services.
- Once the repair process starts, there’s no way to stop it unless you force dismount the database, which isn’t recommended.
- The command can be executed for repairing one database at a time or up to 100 mailboxes.
An Alternative Solution to Repair Corrupted Mailboxes or Databases
Though the NewMailboxRepairRequest cmdlet helps resolve most of the issues associated with the mailboxes, it doesn’t display the repair status. Also, there is no option to pause or stop the repair request. As an alternative, you can use a third-party Exchange repair tool, such as Stellar Repair for Exchange. This tool lets you repair the corrupted Exchange Server database (EDB) file and recover all the mailboxes and other data, such as archive, shared folders, etc. It allows to save the recovered mailboxes and other data to PST files with complete integrity. It can also export the mailboxes recovered from the database to a new healthy database on a live Exchange Server or Microsoft 365 account. The tool supports Exchange Server 2019, 2016, 2013, and earlier versions.
To Wrap Up
The New-MailboxRepairRequest cmdlet helps you fix issues with Exchange mailboxes and databases without dismounting the database. Above, we have explained how to use this cmdlet to repair a mailbox or all the mailboxes in a database. However, this cmdlet is available in Exchange Server 2010 SP1 and later versions only. Also, it may not repair a dismounted database or mailbox stored in a dismounted database. For such cases, you need to use an Exchange repair tool, such as Stellar Repair for Exchange. It supports all Exchange Server versions – from Exchange Server 5.5 to Exchange Server 2019. This tool can fix large, severely corrupt, or damaged Exchange databases, recover mailboxes, and save them in PSTs. It can also export the recovered mailboxes directly to Office 365 or live Exchange Server.