Exchange Managed Availability
Hi All,
Since Exchange 2016 the Monitoring of Exchange is built in and is based on "Managed Availability"
Managed availability
![](https://icewolffile.blob.core.windows.net/$web/202204/Exchange_ManagedAvailability_01.jpg)
To get an overview of your Exchange Environement use the following Command
#Get Exchange HealthReport
Get-HealthReport -Identity $env:Computername | where {$_.state -ne "NotApplicable"}
Get-HealthReport -Identity $env:Computername | where {$_.state -ne "NotApplicable"}
![](https://icewolffile.blob.core.windows.net/$web/202204/Exchange_ManagedAvailability_02.jpg)
Show all Components from a specific Server that are not Healthy use the following command
Get-ServerHealth -Identity $env:Computername | where {$_.CurrentHealthSetState -ne "NotApplicable" -AND $_.AlertValue -ne "Healthy"}
![](https://icewolffile.blob.core.windows.net/$web/202204/Exchange_ManagedAvailability_03.jpg)
Let's dig into the Error
Get-ServerHealth -Identity $env:Computername | where {$_.CurrentHealthSetState -ne "NotApplicable" -AND $_.AlertValue -ne "Healthy"} | fl
![](https://icewolffile.blob.core.windows.net/$web/202204/Exchange_ManagedAvailability_04.jpg)
You can find the Monitoring Events also in Eventviewer
![](https://icewolffile.blob.core.windows.net/$web/202204/Exchange_ManagedAvailability_05.jpg)
I've fixed the Problem with a Certificate that has a Subject Alternative Name that contains the specified Hostname
Now let's restart the Service "Microsoft Exchange Health Manager
Restart-Service MSExchangeHM
![](https://icewolffile.blob.core.windows.net/$web/202204/Exchange_ManagedAvailability_06.jpg)
The Tests giving positive Results back
![](https://icewolffile.blob.core.windows.net/$web/202204/Exchange_ManagedAvailability_07.jpg)
But it takes a while until all tests have been completed. While that time the AlertValue is "Unknown"
Get-HealthReport -Identity $env:Computername | where {$_.state -ne "NotApplicable"}
![](https://icewolffile.blob.core.windows.net/$web/202204/Exchange_ManagedAvailability_08.jpg)
After a few Minutes all Alert Values are Healthy
Get-HealthReport -Identity $env:Computername | where {$_.state -ne "NotApplicable"}
![](https://icewolffile.blob.core.windows.net/$web/202204/Exchange_ManagedAvailability_09.jpg)
Same applies to Get-ServerHealth. It takes about 10 to 15 Minutes until all Tests have been invoked
Get-ServerHealth -Identity $env:Computername | where {$_.CurrentHealthSetState -ne "NotApplicable" -AND $_.AlertValue -ne "Healthy"}
![](https://icewolffile.blob.core.windows.net/$web/202204/Exchange_ManagedAvailability_10.jpg)
Let's do a final check - yes we're all set.
Get-ServerHealth -Identity $env:Computername | where {$_.CurrentHealthSetState -ne "NotApplicable" -AND $_.AlertValue -ne "Healthy"}
![](https://icewolffile.blob.core.windows.net/$web/202204/Exchange_ManagedAvailability_11.jpg)
Regards
Andres Bohren
![](https://icewolffile.blob.core.windows.net/$web/logos/Exchange_logo.png)