MS Exchange Server Health Check Script, helps us detect performance issues, configuration errors, system disruptions, and long-term outages that can occur as a result of a simple configuration change.
This script, Exchange Server It provides the opportunity to check the current status of your environment in detail.
Table of Contents
Exchange Server Health Check Definition and Download
If in your environment DAY If you are planning to reconfigure or create a new Cluster If you are considering adding an additional environment, check the health status of your existing environment before starting these operations. Exchange Server Health Check It would be useful to evaluate it with the script.
Exchange Server Health Check Script, Microsoft It is developed by 100% PowerShell based and is updated regularly. Feedback about the script [email protected] You can send it to the address.
You can use the link below to download the script:
Exchange Server Health Check Prerequisites
In order to run the Exchange Server Health Check Script, the relevant user account must have the following permissions:
- Organization Management
- Domain Admins
Using Exchange Server Health Check
When you run the Exchange Server Health Check Script, 2 different types of files are created in the folder where the script is located,
.txt
file: A file where the output from the PowerShell window is saved as text..xml
file: A file created to allow the report to be examined in more detail.
Exchange Server Health Check Script Converting from XML to HTML
Created .xml
report .html
format. To do this, you can use the following command:

.HealthChecker.ps1 -BuildHtmlServersReport -HtmlReportFile "CP-2019Report.html"


Report .html
When converted to format, some rows or columns may be displayed in color. This coloring makes it easier to see which areas you need to pay attention to.
Exchange Server Health Check HTML Report Color Information
Four different colors are used during report review:
- Grey: It is for informational purposes.
- Yellow: Gives a warning, requires caution.
- Red: May cause performance issues.
- Green: Indicates that everything is smooth and stable.
You can access detailed information about the server from the report.

You may receive a configuration warning below the recommended 2019GB RAM amount for Exchange Server 128. See the image below. Physical Memory Since there is no 128GB RAM in the section, there is no yellow warning.

Power Plan on the server where Exchange Server is running High Performance If the option is not selected, the Health Check report will mark this as red. Similarly, if the PageFile is not properly configured, this will also be shown as red in the report.
In the image below, you can see that the Power Plan is set to High Performance for Exchange Server, and this is highlighted in green in the report, indicating that everything is normal and stable. However, the PageFile configuration is not done, and this is highlighted in red in the report, indicating that the configuration needs to be done. These reports guide you when you need to make adjustments to your server configuration and help you avoid potential performance issues.

Getting a report for your current Exchange Server is pretty simple. All you have to do is run the script without specifying any special components. This will give you a .txt file and an XML report:
.HealthChecker.ps1
If you want to generate a Health Check report for another Exchange Server in your environment, you can use the following command:
.HealthChecker.ps1 -Server
If you have received reports from all your Exchange Server servers in XML format and collected these reports in the folder where the script file is located, you can create an HTML report by combining these files:
.HealthChecker.ps1 -BuildHtmlServersReport
If you have compiled the XML reports of all your Exchange Server servers into another folder where the script file is not located, you can use the following command to convert the XML files in the specified folder to HTML format:
.HealthChecker.ps1 -BuildHtmlServersReport -XMLDirectoryPath C:XMLReport
If you want to get the Health Check reports of all your Exchange Server servers and examine them in HTML format, you can use the following set of commands:
Get-ExchangeServer | ?{$_.AdminDisplayVersion -Match "^Version 15"} | %{.HealthChecker.ps1 -Server $_.Name}; .HealthChecker.ps1 -BuildHtmlServersReport; .ExchangeAllServersReport.html
The command to get a Mailbox Report on a specific server is as follows:
.HealthChecker.ps1 -MailboxReport -Server CP-EXC
Other parameters that can be used with the Exchange Server Health Check script:
PARAMETERS | DETAILS |
---|---|
Server & Hosting | Specifies the server on which you want to run the script. This parameter is not used with -BuildHTMLServersReport or LoadBalancingReport. By default localhost works on. |
OutputFilePath | Specifies the path where log files created by the script will be saved. By default, the current directory is used. |
MailboxReport | Generates a Mailbox Report for the specified server. This provides detailed analysis of mailboxes on the server. |
LoadBalancingReport | Used to report the load balancing status across servers. This report provides important information to balance the load across servers. |
CasServerList | Determines which client access servers to include for the LoadBalancing report. This parameter is used with the LoadBalancingReport key. |
SiteName | Determines which servers in which site the script will be run against. This parameter is also used with LoadBalancingReport. |
XMLDirectoryPath | Specifies the location of the HealthChecker XML files that you want included when generating the HTML report. By default, the current directory is used. |
BuildHtmlServersReport | Enables the script to generate HTML reports for all servers from XML files in the specified XMLDirectoryPath location. |
HtmlReportFile | Specifies the name of the HTML output file generated by BuildHtmlServersReport. Default value ExchangeAllServersReport.html 'Dr. |
DCCoreRatio | Exchange – Collects the DC/GC Quorum ratio and displays the results on the current site where the script is running. |
AnalyzeDataOnly | Analyzes existing HealthChecker XML files. Results are displayed on the screen and an HTML report is generated. |
SkipVersionCheck | When this switch is used, no version checking is performed. This is useful for situations where a specific version is not mandatory. |
SaveDebugLog | Records the debug log of the script even if the script runs successfully. |
ScriptUpdateOnly | Checks for the latest version of the script and automatically updates it if a newer version is found. Can be run on any computer with an Internet connection. No elevated permissions or Exchange Management Shell (EMS) required. |
Important Sections in Exchange Server Health Check Report
The Health Check Script is used to analyze your Exchange Server environment and checks various important settings and identifies potential issues. Here are the important sections to pay special attention to in this report:
TCP/IP Settings Check
KeepAliveTime
The default value is set to 2 hours. Microsoft recommends setting this value lower (15 or 30 minutes is recommended). If it is set incorrectly,KeepAliveTime
, can cause connectivity and performance issues. This is especially important in load balancing scenarios. PowerShell commands can be used to consistently set this value for your servers.

Exchange Server TCP Keep Alive Time – Cengiz YILMAZ
NET Framework Check
- .NET Framework is critical for Exchange Server and may vary depending on the installed versions. The Health Check report checks the .NET Framework versions installed on your servers. For example, Exchange Server 2022 running on Windows Server 2019 has .NET Framework 4.8 installed, which is marked as green as OK.

Check TLS Configuration:
- Your servers' TLS configuration is vital for security and connectivity. Incompatibilities between TLS 1.0 and 1.2 can cause connectivity and security issues. It can also cause Free/Busy information to not work properly.
.NET Framework
veWindows Schannel
illegant countriesDisabledByDefault
values need to be configured properly.
Exchange Server TLS Configuration – Cengiz YILMAZ
Open Relay Field Control:
- If Open Relay is set up in your environment, this may pose security risks and will be marked red in the report.
Sleepy NIC Control:
- In Network Interface Card (NIC) settings, it is recommended to disable energy management as it may cause packet loss. In real server environments, this setting is one of the standard settings that must be made before activating the server.
The Exchange Server Health Check report provides valuable information to optimize the health and performance of your servers. By following the recommendations provided, you can ensure that your system operates safely and efficiently.
TCP Keep Aliv in Exchange ServerDo you need e-structuring and reporting, you can follow the article.
3 comments on “Exchange Server Health Check”