By Edy, Tech Expert & Blogger
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.

Step-by-Step Exchange Server Health Check
1. Check Exchange Services
Ensure all critical Exchange services are running:
Test-ServiceHealth
✅ Expected: All required services should be Running.
2. Check Server Component Status
Verify if essential Exchange components are active:
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:
Test-Mailflow
✅ Expected: Success with reasonable latency.
4. Check Exchange Database Status
Ensure mailbox databases are online and healthy:
Get-MailboxDatabase -Status | Select Name, Mounted, OnlineMaintenanceRunning
✅ Expected: Mounted = True.
5. Check Mail Queues
Identify stuck emails in transport queues:
Get-Queue
✅ Expected: Low message count, no long-standing retries.
Force a retry if needed:
Delete problematic messages:
Get-Queue | Get-Message | Remove-Message -WithNDR $false
6. Verify DNS Resolution for Mail Delivery
Ensure Exchange can resolve external domains:
Resolve-DnsName example.com
✅ Expected: Successful resolution with valid MX records.
7. Test SMTP Connectivity
Check if Exchange can send emails to external servers:
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:
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:
Test-OutlookWebServices | FL
✅ Expected: All tests return Success.
10. Check SSL Certificate Expiry
Ensure Exchange certificates are valid:
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.
Tech Expert & Blogger
Hi, I’m Edy. With over 30 years of experience in the IT industry, I’ve tackled numerous tech challenges.
As a solopreneur, I write articles to fill the gaps I notice in my work and online.
My mission? To provide clear, step-by-step tech guidance and improve the information you find on the web
Enjoying the content?