How to Check Exchange Mailbox Health – Easy Ways to Monitor Health

Written By Ashwani Tiwari
Anuraag Singh
Approved By Anuraag Singh
Published On September 12th, 2022
Reading Time 6 Minutes Reading

Working with Exchange 2016, 2013, and 2010 environments, you must be aware of the fact that Exchange Mailboxes are quite prone to corruption. It is not that mailboxes will show signs before getting corrupt. Mailboxes can become damaged all of a sudden, get crashed and you might suffer in this situation. In these situations, Administrators prefer to keep a check on Exchange mailbox health.

But the main question is how a user can monitor the health of the Exchange mailboxes? Moreover, if any mailbox gets corrupted, then what is the best way to get it fixed. So, we will find the solution to our query in the following section.

Table of Contents

1. Some Additional Commands Before You Run Health Check

2. Check and Perform Recovery on Mailboxes

3. Advanced Solution to Perform Recovery (Recommended)

4. Check Exchange Health Mailboxes

How to Check Exchange Database Health In 2010 / 2013 / 2016 Environment?

In order to check the Microsoft Exchange Server database health status, we have to run the Get-MailboxStatistics command in PowerShell. After you run this command, users will get four pieces of information about each Exchange mailbox. These are:

  • Mailbox display name
  • Mailbox item count
  • Status of mailbox storage limit
  • Last login time

The above-listed command does not show us how much data each mailbox contains. To know that information, we have to use another command:

Get-MailboxStatistics | ft DisplayName,TotalItemSize,ItemCount

Using this command, we will get the following information:

  • Name of the mailbox
  • The total size of the mailbox items
  • Total number of mailbox items

Till now, we were talking about the entire Exchange server. If someone wants to know about any individual mailbox, run this command:

Get-MailboxStatistics | fl username

Once this script is run, users will get the information about the mailbox of that particular user. The information will include:

  • Display name
  • Item count
  • Last Logon time
  • Last logoff time
  • Total item size
  • Deleted item size
  • Storage limit status

Additional Health Check Commands For Exchange 2016/ 2013 / 2010 Environment

In the previous section, we talked about commands that will fetch the basic Exchange mailbox statistics. In this section, we will tell you which scripts to use if you want to know some advanced information to check Exchange mailbox health in Exchange 2019, 2016, 2013, 2010, 2007, and below environment.

  • Sort Mailboxes Based on Mailbox Size

Get-MailboxStatistics | Sort-Object TotalItemSize –Descending | ft DisplayName,TotalItemSize,ItemCount

This command will allow users to get basic stats by displaying the results sorted in descending form. Users can change a bit in this command to get the results in ascending form.

Get-MailboxStatistics | Sort-Object TotalItemSize –Ascending | ft DisplayName,TotalItemSize,ItemCount

  • Display Mailbox Size in KB

Get-MailboxStatistics | Sort-Object TotalItemSize -Descending | ft DisplayName,@{label=”TotalItemSize(KB)”;expression={$_.TotalItemSize.Value.ToKB()}},ItemCount

This command will convert the total item size into Kilobyte from bytes. Thus, it will be easy for the users to know the actual size of the mailbox. If you want to view the size in Megabyte or Gigabyte, use TotalItemSize.Value.ToMB and TotalItemSize.Value.ToGB respectively in the command.

How to Check Exchange Database Health Using Manual Technique?

Earlier, the IsInteg tool was used to find out the corruption issues in the Exchange mailbox. This got replaced by the New-MailboxRepairRequest cmdlet since Exchange Server 2010. So, you can use the latter command to check Exchange mailbox health in the newer version.

  • PowerShell Command to Check Mailbox Corruption

New-MailboxRepairRequest -Mailbox Alice -CorruptionType ProvisionedFolder,SearchFolder –DetectOnly

This command will find out the corruption in the provisioned folders and provides a report on them. This script will also detect search folder corruption.

To repair, use the below command:

New-MailboxRepairRequest -Mailbox Alice -CorruptionType ProvisionedFolder,SearchFolder, AggregateCounts,Folderview -Archive

  • PowerShell Command to Check and Repair Single Mailbox Corruption

New-MailboxRepairRequest -Mailbox [email protected] -CorruptionType FolderView

This command will perform both detection and repairing of a single Exchange mailbox.

  • PowerShell Command to Check Health and Repair Multiple Mailboxes

If you have checked Exchange Mailbox Health and find that multiple mailboxes are damaged. In that case, use the following command to check corruption in a set of mailboxes that contain some common Custom Attribute and then repair them.

Get-Mailbox -Filter {CustomAttribute4 -like “Repair Required”} | New-MailboxRepairRequest -CorruptionType SearchFolder,AggregateCounts,ProvisionedFolder,FolderView

Important Note: If you find any kind of corruption in Exchange Database then, Exchange Administrators & Users can try SysTools Exchange Recovery Tool. This advanced solution helps users to repair EDB files and export them into a healthy state (PST, MBOX, EML, Office 365, Live Exchange Server, etc.). This recovery manager for the Exchange database tool can fix EDB file issues from MS Exchange 2016, 2013, 2010, 2007, etc.

Download Now Purchase Now

How to Monitor Health of Exchange Health Mailboxes?

Besides checking the health status of the Exchange mailboxes, users often need to learn about the condition of the entire Exchange environment. Especially Admins find it important to keep track of what is happening in Exchange Server. There are some Health Mailboxes created in Exchange to view the information on Exchange infrastructure.

Use Get-mailbox –Monitoring command to check the health status of Exchange and other environments. Once run, it will display all Servers situated in the entire Exchange environment. If there are no issues with any mailbox, the result should appear like this:

If any health mailbox file is corrupted, then you find an error similar to the below image:

To fix this health mailbox, file, you need to locate these corrupted health mailbox files, for that:

  1. Open Administrative Tool >> Active Directory Administrative Center.
  2. Now Open “Microsoft Exchange System Objects” and Go to Monitoring Mailboxes.
  3. Now Locate the corrupted file and deleted it.
  4. Now we need to recreate the file again. For that, Restart “Microsoft Exchange Health Manager” again to create New Health Mailboxes again.

Using the above command and steps, Exchange users can check the health mailbox status of Exchange infrastructure and user mailboxes easily and other properties of mailboxes that help to know the current status of the mailbox.


Always maintain Exchange Server Environment to avoid any kind of messaging errors and to avoid data loss in user mailboxes. For that use Powershell Command to command to check Exchange Database health. Use PowerShell command Get-MailboxStatistics to know meta-details of Exchange mailboxes and get -mailbox | monitoring to find any kind of corruption in the Exchange database.

Queries – Exchange Health Check

Q. What is the Exchange Health mailbox?

A. Exchange Server 2013 came with a new feature to monitor the system with self-recovery capabilities called Managed Availability. This built-in feature performs continuous tests that simulate end-user actions, and it can detect possible problems with Exchange components or their dependencies easily.

Q. How does Exchange 2013 check the mailbox for corruption?

A. To check Exchange mailbox corruption, use IsInteg or New-MailboxRepairRequest. This is the best way for auditing regular Exchange database (.edb) file health and checking its Integrity. Fix the corruption in the EDB file via Eseutil Powershell commands as given.

Q. What is the command to check Exchange Database health?

A. To check the Microsoft Exchange Server database health status, you can run the Get-MailboxStatistics command in PowerShell. Running this command will provide four pieces of information about each Exchange mailbox.

Check Mailbox Health in Exchange