skip to Main Content

Check Exchange health mailboxes

DAG databases keep switching servers by themselves is a new feature of Exchange 2016 CU2. If you have a pre-Exchange 2016 CU2 server and it’s switching over automatically, then there is another issue. What you need to do is to check the Exchange health mailboxes. Did you already check the Exchange health mailboxes? If the health mailboxes are corrupted, then they will not work like it’s intended to do.

How many Exchange health mailboxes

Up to Exchange 2013 CU6, there is one health mailbox per mailbox database copy and one per CAS. Exchange 2013 CU6 changed the number of health mailboxes that are created. A health mailbox is created for every mailbox database hosted on a mailbox server (Active or Passive) and 10 health Mailboxes for every CAS role.

If you need to know the total count of the health mailboxes, run the following command.

[PS] C:\>(Get-Mailbox -monitoring).count
44

The organization is running 2 Exchange 2016 Servers with a DAG configured. Each Exchange Server is running 12 databases. Let’s do the math:

2 Exchange Servers times 12 databases = 24 health mailboxes
2 Exchange Servers (CAS role) times 10 health mailboxes = 20 health mailboxes
Total = 44 health mailboxes

Read more: Count health mailboxes in Exchange »

Now that we have calculated the count of the health mailboxes, we can proceed further to check the health mailboxes.

Check Exchange health mailboxes

Run Exchange Management Shell as Administrator. Check the health mailboxes of all the Exchange servers in the organization. It should show like below. We did not list all the health mailboxes.

[PS] C:\>Get-Mailbox -Monitoring

Name                      Alias                ServerName       ProhibitSendQuota
----                      -----                ----------       -----------------
HealthMailboxfc6b222c5... HealthMailboxfc6b... ex01-2016        Unlimited
HealthMailbox3c77598d7... HealthMailbox3c77... ex02-2016        Unlimited
HealthMailbox51b8bbed8... HealthMailbox51b8... ex02-2016        Unlimited
HealthMailbox5aa05ef5a... HealthMailbox5aa0... ex01-2016        Unlimited
HealthMailbox651e899e4... HealthMailbox651e... ex01-2016        Unlimited
HealthMailbox7df74c738... HealthMailbox7df7... ex02-2016        Unlimited
HealthMailbox133cc940d... HealthMailbox133c... ex02-2016        Unlimited

If you have more than one Exchange Server and you want to show the health mailboxes of that particular Exchange Server, run the following command.

[PS] C:\>Get-Mailbox -Monitoring | ?{$_.DisplayName -like "*EX01-2016*"} | Format-Table Name, Database, DisplayName, ServerName

Name                                          Database DisplayName                  ServerName
----                                          -------- -----------                  ----------
HealthMailboxfc6b222c524d472a9a0547cdc90f48a5 DB01     HealthMailbox-EX01-2016-DB01 ex01-2016
HealthMailbox3c77598d767f44af902ba08a6af516cd DB02     HealthMailbox-EX01-2016-DB02 ex02-2016
HealthMailbox51b8bbed8a344d37b6babccc5c1b702f DB04     HealthMailbox-EX01-2016-DB04 ex02-2016
HealthMailbox5aa05ef5aba14671b2900cb003002124 DB03     HealthMailbox-EX01-2016-DB03 ex01-2016
HealthMailbox651e899e40ac40a99ac65f7c2027e11b DB01     HealthMailbox-EX01-2016-001  ex01-2016
HealthMailbox7df74c7387e24c7abbab2571ea8494a9 DB04     HealthMailbox-EX01-2016-002  ex02-2016
HealthMailbox133cc940d19b4d45ae680076e17dd587 DB02     HealthMailbox-EX01-2016-003  ex02-2016
HealthMailboxf547cc3e8ca94092bda020148fdb9b1b DB03     HealthMailbox-EX01-2016-004  ex01-2016
HealthMailboxe278c15302a745759c6dd77be9ec84b6 DB01     HealthMailbox-EX01-2016-005  ex01-2016
HealthMailbox0a2f8ef25c004a369a6668f2d85ad8a9 DB04     HealthMailbox-EX01-2016-006  ex02-2016
HealthMailboxdfd77822e9c3468bb5f6adee1da27439 DB02     HealthMailbox-EX01-2016-007  ex02-2016
HealthMailbox8ba1b2f470b546bebed5188f169e5d69 DB03     HealthMailbox-EX01-2016-008  ex01-2016
HealthMailboxcfbde93a3a0b456298e574aebd2d090c DB01     HealthMailbox-EX01-2016-009  ex01-2016
HealthMailbox3e3174d634754afb96b7c9d1810caff8 DB04     HealthMailbox-EX01-2016-010  ex02-2016

It will list all the health mailboxes, and if you don’t see any error, all is good! If you see errors on one or more health mailboxes, it means that the health mailboxes are corrupted and in an inconsistent state.

“WARNING: The object DOMAINNAME/Microsoft Exchange System Objects/Monitoring Mailboxes/”Health_Mailbox_GUID” has been corrupted, and it’s in an inconsistent state. The following validation errors happened: WARNING: Database is mandatory or UserMailbox.”

Exchange health mailbox cleanup

To fix Exchange health mailboxes corrupted inconsistent state, we will recreate the Exchange health mailboxes in three steps and verify that they are in healthy condition. You can perform the steps for Exchange Server 2013/2016/2019.

1. Stop Exchange Health Manager Service

Stop the service Exchange Health Manager Service on all the Exchange Servers.

[PS] C:\>Get-Service -DisplayName "Microsoft Exchange Health Manager" | Stop-Service

2. Delete Exchange health mailboxes

Open up Active Directory Users and Computers (ADUC). Make sure to enable Advanced Features. If you don’t, you can’t see the container Microsoft Exchange System Objects.

Check Exchange health mailboxes ADUC Advanced Features

Expand the container Microsoft Exchange System Objects. Click on the sub-container Monitoring Mailboxes. Select all the health mailboxes and delete them.

Check Exchange health mailboxes delete all

If you want to delete them through Exchange Management Shell, run the following command.

[PS] C:\>Get-Mailbox -Monitoring | Remove-Mailbox -Confirm:$false

3. Start Exchange Health Manager Service

Now let’s recreate the health mailboxes.

Start the service Exchange Health Manager Service on all the Exchange Servers. You can also restart the Exchange Servers.

[PS] C:\>Get-Service -DisplayName "Microsoft Exchange Health Manager" | Start-Service
WARNING: Waiting for service 'Microsoft Exchange Health Manager (MSExchangeHM)' to start...
WARNING: Waiting for service 'Microsoft Exchange Health Manager (MSExchangeHM)' to start...

4. Verify Exchange health mailboxes

It may take a while for all health mailboxes to be populated. Run the following command to check if all is looking good.

[PS] C:\>Get-Mailbox -Monitoring | Format-Table Name, ServerName, WhenCreated

Name                                          ServerName WhenCreated
----                                          ---------- -----------
HealthMailbox24e0fe6308a8463ba9ecd9aa01aafdcd ex01-2016  5/14/2021 2:23:20 PM
HealthMailbox3e521925c4ef4737afeb918fb7ce894c ex02-2016  5/14/2021 2:23:20 PM
HealthMailbox32f14db8771f431bbe0070b35d2a7b5a ex02-2016  5/14/2021 2:23:20 PM
HealthMailbox134c28e946f34a5d9f0e35265129135d ex01-2016  5/14/2021 2:23:25 PM
HealthMailbox5e66219044a24a98b41c40a4367e8f5d ex01-2016  5/14/2021 2:23:37 PM
HealthMailbox3babb5d5e74249ebb8dd412eb87fd385 ex01-2016  5/14/2021 2:23:49 PM
HealthMailboxc0b31d6fb0e74cdb85b209827604797a ex02-2016  5/14/2021 2:23:59 PM

Keep reading: Exchange Server health check with PowerShell script »

Conclusion

It’s always essential to have the health mailboxes checked. Having all health mailboxes in a proper state is important to keep your Exchange Servers healthy. When was the last time that you checked your health mailboxes? Another great article about health mailboxes is written by Microsoft.

If you enjoyed this article, you might also like Exchange transaction logs growing rapidly. Don’t forget to follow us for more great content.

ALI TAJRAN

ALI TAJRAN

ALI TAJRAN is a passionate IT Architect, IT Consultant, and Microsoft Certified Trainer. He started Information Technology at a very young age, and his goal is to teach and inspire others. Read more »

This Post Has 3 Comments

  1. This article is very easy to follow, thank you.

    Does this apply to Exchange 2019 too?

Leave a Reply

Your email address will not be published. Required fields are marked *