Summary: In this guide, you will learn about the causes of mailbox corruption in the Exchange server. In addition, you’ll get to know the steps to repair and fix a corrupt mailbox by using Exchange PowerShell cmdlets, such as New-MailboxRepairRequest, and New-MoveRequest. Also, you’ll learn about an advanced Exchange recovery tool that can quickly repair mailboxes in Exchange and move them to a live Exchange server.
Mailbox corruption is a common issue faced by Exchange admins, engineers, and service providers. However, this corruption problem can be reversed via the removal of mailbox quarantine. If the problem persists, you can use inbuilt Exchange utilities and cmdlets to either repair a corrupt database or move it to a different database, depending on the type of database corruption.
After repair, you can easily move or migrate the mailbox to another Exchange Server. For instance,
An organization is using the Exchange 2013 version. Now, the organization decides to upgrade from Exchange 2013 to Exchange 2016. To accomplish this task, the Exchange administrator builds a new server and deploys Exchange 2016 roles. Now, there are two separate servers – one with Exchange 2013 and second with Exchange 2016 configuration. Now the Admin wants to move mailboxes directly from one live server to another. Taking this into consideration, Exchange Admin moves mailboxes from the current 2013 server to the new 2016 server and gets stuck as the mailbox got corrupt.
Though Exchange admins dread such situations, still the problem of corrupt mailbox arises at some point in time. In case of mailbox corruption, they’re unable to move mailboxes from one server to another. If you’re facing such a problem, below we have discussed various steps and a method that can help you repair and move corrupt mailboxes from one Exchange server to another with the help of Exchange tools and Exchange recovery software, such as Stellar Repair for Exchange.
But before that, let’s take a look at the reasons behind mailbox corruption.
Causes of Mailbox Corruption
Following are some common causes that may lead to logical or physical mailbox corruption in Exchange,
- Storage media error
- Hardware/software failure
- Sudden power failure
- System crash
- File system error
- Synchronization errors
- Broken ActiveSync Clients
- Problematic Outlook Add-ins
- Antivirus software conflicts
- Post mailbox migration
Except for power outage, corruption due to all other factors may go undetected. In most cases, corruption issue is discovered in the event of mailbox migration, either within the organization for Exchange upgrade or across Exchange organizations. Due to corrupt mailbox item(s), engineers working on the mailbox migration encounter failure during its movement.
If such a problem arises, the first step is to check if this is the case of Mailbox Quarantine. If yes, this can be resolved by Mailbox Quarantine commands.
Follow the given step-by-step repair process to resolve the issue:
Step 1: Mailbox Quarantine
Corrupt or damaged mailboxes are quarantined by Exchange. Once quarantined, the user can’t access the mailbox by using Outlook or any other client. In Exchange 2013 and later, you can use the following PowerShell cmdlet to enable or disable Quarantined Mailbox.
Get-Mailbox | Get-MailboxStatistics | Select DisplayName, IsQuarantined | Format-Table –AutoSize
Check the mailbox corruption by using Eseutil /mh command. If the problem stands unresolved, follow the below-mentioned steps to repair mailboxes.
Step 2: Use EseUtil
When there is page-level corruption in the database, you can use ESEUTIL /P to perform database repair. Similarly, if a database experiences Dirty Shutdown state due to non-availability of log files, you can use the EseUtil commands to bring the database back to a Clean Shutdown state. After repair, you may attempt to move the mailboxes from one Exchange to another.
To check database shutdown state, run the following command,
eseutil /mh ‘.\Mailbox Database.edb’
If the database is in Dirty Shutdown state, use the following EseUtil command to repair mailbox database,
eseutil /p ‘.\Mailbox Database.edb’
When a confirmation message appears asking to confirm that it may result in data loss, click on the OK button to proceed. The operation completed successfully message, along with the time taken to complete the process, is displayed on the screen.
This should bring back the database to Clean Shutdown state. To verify database shutdown state, use following command,
eseutil /mh ‘.\Mailbox Database.edb’
Step 3: Repair Logical Mailbox Corruption
In Exchange 2010 and earlier versions, you need to use ISINTEG utility to check logical mailbox corruption.
C:\>isinteg -s wingtip-e2k7 -fix -test alltests -verbose -l c:\isinteg.log Databases for server wingtip-e2k7:
However, with Exchange 2010 SP1 and later versions, the utility is replaced with the New-MailboxRepairRequest cmdlet to repair a corrupt or damaged mailbox. The cmdlet works only in the on-premise Exchange.
Also, by using the New-MailboxRepairRequest cmdlet, you can repair the following corruption types in a mailbox,
Follow the New-MailboxRepairRequest cmdlet given below to detect and fix mailbox corruption issues.
New-MailboxRepairRequest -Mailbox <MailboxName> -CorruptionType <CorruptionType>
New-MailboxRepairRequest -Mailbox firstname.lastname@example.org -CorruptionType SearchFolder
Quick Tip: While using the command, you can mention all corruption types separated by commas.
Step 4: Repair Physical Mailbox Corruption
In this, the corrupt mailbox is moved to a new database which essentially creates a new mailbox that contains data extracted from the corrupt mailbox.
However, in this repair, there are chances of data loss. The cmdlet to move the mailbox is as follows,
New-MoveRequest –Identity <mailboxname> -TargetDatabase <TargetDB>–BadItemLimit 200 –AcceptLargeDataLoss
You can also use the WhatIf parameter to check the mailbox’s readiness before moving it to a new database.
New-MoveRequest -Identity 'email@example.com' -TargetDatabase "MyDB01" -WhatIf
If moved successfully, export the mailbox from the new database to PST by using the New-MailboxExportRequest cmdlet. The cmdlet will export the mailbox to a PST file which you can import to another server. This way, you can easily move a corrupt mailbox from one Exchange to another.
Reliable Method to Move Corrupt Mailboxes from One Server to Another
If PowerShell commands don’t help, fail, or result in warning event IDs – 9041, 9042, and 2004, use Exchange recovery software, such as Stellar Repair for Exchange.
Reasons to Use Stellar Repair for Exchange to Move Corrupt Mailbox
- Repairs corrupt mailboxes when EseUtil and PowerShell commands fail.
- Resolves database inconsistency and enables mounting of a database.
- Repairs and recovers corrupt EDB files and restore all mailbox components.
- Recovers deleted mailboxes.
- Offers option to save recovered mailboxes as PST, HTML, MSG, EML, RTF, or PDF
- Exports mailboxes to Live Exchange Server and Office 365.
- Scans EDB file and renders preview for verification.
- Works to repair Unicode EDB files in any language.
Common Exchange problems, such as mailbox corruption, may arise due to several reasons, which are discussed in this guide. As a result, it hinders the normal functioning of the Exchange server and user accounts. A mailbox may also get corrupt after moving a mailbox from one server to another. However, this can be resolved by using PowerShell cmdlets, such as New-MailboxRepairRequest and New-MoveRequest. Further, you can also use an advanced Exchange data recovery software such as Stellar Repair for Exchange to repair and move corrupt mailboxes from one Exchange server to another when Exchange cmdlets fail. Besides, the software acts as a ready reckoner for any problem arising due to the corruption or deletion of a mailbox database.
Check out what MVP says about Exchange Recovery Tool from Stellar.