Quick commands to check Exchange Server health
Microsoft Exchange Server is a reliable piece of software. However, every system bears a risk of malfunction. As the Murphy’s law says: “The larger the system, the greater the probability of unexpected failure.”.
It is, therefore, good to know a couple of simple commands that let you quickly check your server’s health. Whether you just want to do a routine check or one of your users reports that “Email is not working!”, use the methods below for a quick status report.
Please note that all commands below need to be executed in the Exchange PowerShell console, either directly on the server or via a remote PS session.
Test-ServiceHealth
This command returns the status of all critical services required by the server to process and send/receive messages. The result might look as below:
When the line ServicesNotRunning shows any result, similarly as on the screen above (MSExchangeTransport service is not running), then there might be a problem that needs to be investigated. The malfunction pictured on the screenshot is critical. Without MSExchangeTransport service running, no email can be delivered/received. The solution is to start services that are not running and analyze the possible cause of the problem in system logs.
Get-MailboxDatabase -Status | Format-List name,server,mounted
With this command, you can check whether your mailbox database is mounted, as it is another critical component of your Exchange. Without mounted mailbox database, no email can be delivered or received. The result below shows a healthy situation - the mailbox database is mounted:
Get-Queue | Select Identity,Status,MessageCount
To check if your email queue is not growing uncontrollably, causing message processing delays, use the command above. It’ll present all available queues on the server and their respective loads.
If you notice that the Unreachable or Submission queues are showing unusual numbers of waiting emails then it’s time to investigate. Usually restarting the transport service is enough to push emails forward, however even if this helps, a full server diagnostic is recommended to find the original cause of the mail queuing (which might be e.g. a failing transport agent).
Ping www.mshsoftware.com
Sometimes the problem with email delivery is so basic, that we overlook it while searching for more complicated sources of the issue. Without the internet connection, no email leaves our server. Run the command above to check if there is an access to the web.
A broken router, malfunctioning network switch, or simply an unplugged LAN cable might be the cause of the problem. As the oldest IT joke goes - “Are you sure that your computer is plugged into the power source?”.
These couple of commands are just a quick and dirty method to check up on your server’s health. A good thing about them is that you can run these cmdlets even remotely, from your house, at 3:30 AM, after receiving a call from the nightshift employee “Email is not working!”.
To learn more visit MSH Exchange Autoresponder website.