Introduction

When the Exchange Server isn’t working as expected, admins need a quick and effective way to diagnose issues. This checklist provides PowerShell commands to verify Exchange Server health, troubleshoot mail flow, and identify potential problems—fast.

  • Run these checks from the Exchange Management Shell (EMS) on the Exchange Server.
Exchange Server Health Check

Step-by-Step Exchange Server Health Check

1. Check Exchange Services

Ensure all critical Exchange services are running:

PowerShell
Test-ServiceHealth

✅ Expected: All required services should be Running.

2. Check Server Component Status

Verify if essential Exchange components are active:

PowerShell
Get-ServerComponentState -Identity $env:COMPUTERNAME

✅ Expected: Most components should be Active (except hybrid-only features like ForwardSyncDaemon

3. Verify Mail Flow

Send a test email to check internal mail routing:

PowerShell
Test-Mailflow

✅ Expected: Success with reasonable latency.

4. Check Exchange Database Status

Ensure mailbox databases are online and healthy:

PowerShell
Get-MailboxDatabase -Status | Select Name, Mounted, OnlineMaintenanceRunning

✅ Expected: Mounted = True.

5. Check Mail Queues

Identify stuck emails in transport queues:

PowerShell
Get-Queue

✅ Expected: Low message count, no long-standing retries.

Force a retry if needed:

Delete problematic messages:

PowerShell
Get-Queue | Get-Message | Remove-Message -WithNDR $false

6. Verify DNS Resolution for Mail Delivery

Ensure Exchange can resolve external domains:

PowerShell
Resolve-DnsName example.com

✅ Expected: Successful resolution with valid MX records.


7. Test SMTP Connectivity

Check if Exchange can send emails to external servers:

PowerShell
Test-NetConnection -ComputerName example.com -Port 25

✅ Expected: TCP connection succeeds.


8. Check Event Logs for Errors

Identify critical errors related to mail flow and databases:

PowerShell
Get-EventLog -LogName Application -EntryType Error -After (Get-Date).AddDays(-3) | Where-Object {$_.Source -match u0022MSExchangeu0022}

✅ Expected: No recent critical errors.


9. Verify Outlook Web Access & ECP

Ensure web-based access is functional:

PowerShell
Test-OutlookWebServices | FL

✅ Expected: All tests return Success.


10. Check SSL Certificate Expiry

Ensure Exchange certificates are valid:

PowerShell
Get-ExchangeCertificate | Select Thumbprint, FriendlyName, Subject, NotAfter

✅ Expected: NotAfter Should be in the future.

Final Thoughts

This checklist provides a straightforward approach to diagnosing Exchange Server health issues. By running these PowerShell commands, admins can quickly pinpoint problems and take action to keep email services running smoothly.

I would love to get some feedback from you. Was this article helpful? Please share your opinion with me in the comment section below. Or, if you prefer a more personal touch, feel free to email me directly at info@edywerder.ch. Your thoughts and insights are always appreciated. Additionally, you can connect with me on Reddit at Navigatetech.

Before you go …

If you’re running health checks on your Exchange Server with PowerShell, you might also need to put your server into maintenance mode for updates or troubleshooting. Understanding how to properly transition your server can prevent downtime and ensure a smooth process. Check out Exchange Server in Maintenance Mode for a step-by-step guide on preparing and restoring your server efficiently. This will help you avoid unexpected issues and keep your environment stable.

Full Disclosure

Any purchases made from clicks on links to products on this page may result in an affiliate commission for me. 

Please keep in mind that the quantity or price of items can change at any time.

As an Amazon  Associate, I earn from qualifying purchases.

Als Amazon-Partner verdiene ich an qualifizierten Verkäufen

Tech Expert & Blogger


Leave a Reply

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

For security, use of Google's reCAPTCHA service is required which is subject to the Google Privacy Policy and Terms of Use.