How to Monitor the Health of Exchange Server?

Administrators regularly monitor health of Exchange server to ensure smooth functioning of the organization. They analyze the performance and operations related to various components of Exchange server that helps in detecting any irregularities or failure. In this post, we’ve discussed the ways to monitor the health of Exchange server - by using the native utility of Exchange server and an automated Exchange monitoring tool.

Monitor Health of Exchange Server by using the EMS

You can use native utility Exchange Management Shell (EMS) to check the performance and health of server on various aspects.

1.  Obtain Server Health Summary

There are many in-built reporting cmdlets in Exchange server that you can use to monitor Exchange server health. These are provided under the Managed Availability that runs on every Exchange server.

Under Managed Availability, probes are installed on the server to provide actionable data that monitors can access. The monitors decide when intervention is necessary to prevent server malfunctions. If required, monitors can also trigger responders to act and repair affected services. 

To view the monitors, probes, and responders associated with a health set, run the following command:

Get-MonitoringItemIdentity -Server-Identity | Format-Table Identity,ItemType,Name -Auto

Managed Availability automates Exchange monitoring and implements remedial procedures when needed. However, in some cases, it may fail to resolve Exchange issues. You can run the following command in Exchange Management Shell to manually check the health sets and health status of Exchange server:

Get-HealthReport -Identity

If you notice any particular health sets are healthy, you can troubleshoot the issue manually.

Powershell Output

Sample Output

2. Check Server Availability and Status of Services

You can run the below command in EMS to check if all MS Windows services, required by Exchange, are running. If a service isn’t running, the cmdlet will throw an error.


3. Monitor Message Queue

You can use Get-Queue cmdlet to obtain configuration information for queues on Edge Transport servers or Mailbox servers. For this, run the following command:

Get-Queue -Identity Submission | Select Identity,Status,MessageCount

This will fetch the number of messages waiting to be processed under MessageCount column.

You can run the command regularly to monitor the messages queue. If you find that the queue is growing consistently, it indicates that a connector is not working correctly and failing to send the messages. You can investigate and resolve the problem manually.

4. Monitor CPU and Memory Usage on Exchange

High CPU utilization and memory usage on Exchange server can cause various problems, such as restricted email flow, slow logins on user systems, system errors, etc. You can use Get-WmiObject cmdlet to fetch the values of both CPU utilization and memory usage.

To fetch CPU utilization of Exchange server, run the following command:

$Processor = (Get-WmiObject -ComputerName $Exchserver -Class win32_processor -ErrorAction Stop | Measure-Object -Property LoadPercentage -Average | Select-Object Average).Average

To fetch memory utilization of Exchange server, run the following command:

$ComputerMemory = Get-WmiObject -ComputerName $Exchserver -Class win32_operatingsystem -ErrorAction Stop $Memory = ((($ComputerMemory.TotalVisibleMemorySize - $ComputerMemory.FreePhysicalMemory)*100)/ $ComputerMemory.TotalVisibleMemorySize) $RoundMemory = [math]::Round($Memory, 2)

The commands will fetch CPU and Memory utilization values in percentage. 

5. Monitor Exchange Server Storage

Drive storage capacity is an important aspect in Exchange server. This is because, every time an email is sent on the network, it’s written to the disk. So, you must monitor drive storage and the available free space. You can use the command below to get the information on the server’s drive capacity, size of databases, and available free space. It will fetch the given details in a CSV format. 

$servers = get-exchangeserver

Get-WmiObject -computer $servers win32_volume|

select-object __SERVER,Name,

@{Name="Capacity(GB)";expression={[math]::round(($_.Capacity/ 1073741824),2)}},

@{Name="FreeSpace(GB)";expression={[math]::round(($_.FreeSpace / 1073741824),2)}},

@{Name="Free(%)";expression={[math]::round(((($_.FreeSpace / 1073741824)/($_.Capacity / 1073741824)) * 100),0)}}|

export-csv c:\scripts\filename1.csv

Challenges in Exchange Server Monitoring with EMS

It is a difficult and cumbersome task to type and run multiple EMS commands daily for comprehensive Exchange health monitoring. Though, you can create a task in Task Scheduler to run the scripts automatically at certain time(s) every day, it’s still a complicated and time-consuming process.

On the other hand, the information you receive with cmdlets is fragmented and contains a lot of data. Finding specific details in this data is a challenge.

Automated Solution to Monitor Health of Exchange Server

Monitoring Exchange server manually is difficult, time-consuming, and even unviable at times. Stellar Reporter & Auditor for Exchange Server is an advanced Exchange monitoring software that offers many impressive features that can help monitor Exchange server health. The software makes it easy by offering all the reports and server metrics you need in a neat and organized interface.

On the Welcome Admin page of the software, you can instantly see a list of alerts under different categories and other storage details. You can also use the software to schedule server scanning and reporting, monitor health of Exchange Server remotely, set up alerts with different threat levels, and more.

The following are some of the salient features of Stellar’s Exchange monitoring tool:

  • Generates 142 different reports covering almost all the aspects of Exchange in a few clicks
  • Allows to schedule scanning and reporting
  • Web interface to allow access from anywhere and anytime, even on smartphones
  • Support for multiple servers on the same network
  • Support for Exchange Server 2007, 2010, 2013, and 2016
  • Export reports in different formats: PDF, XLSX, HTML, and CSV
  • Welcome Admin page that offers quick insights into the server

Welcome Admin page in Stellar software

Welcome Admin page


One of the main responsibilities of administrators is to regularly monitor health of Exchange Server. This helps them detect any irregularities in server components, thus ensuring uninterrupted and normal working of the Exchange server.

To monitor the health of Exchange server, you can use the native utility – Exchange Management Shell (EMS). However, execution of these commands requires technical proficiency and a lot of time & efforts. To make Exchange monitoring easy and simple, you can use Stellar Reporter & Auditor for Exchange Server. It offers various impressive features such as intuitive reports, quick insights, remote monitoring, and more. This software can serve as a free Exchange health monitor for you as it is available for 60 days free trial.


Was this article helpful?
About The Author
author image
Abhinav Sethi linkdin Icon

Senior Writer at Stellar with 7 Years of Experience

Table of Contents


Why Choose Stellar?
  • 0M+


  • 0+

    Years of Excellence

  • 0+

    R&D Engineers

  • 0+


  • 0+


  • 0+

    Awards Received