Exchange Health Check Steps

You are here:
< Back

Goal / Scope

Messaging has become one of the most critical and important services for most if not all organizations.  Maintaining a level of health on these valuable resources has then also become important.  Currently, there are many resources available online, but few seem to organize the information and look holistically at the Exchange environment.  This reference document should provide a baseline for reviewing an Exchange environment completely and organize it to be effective.  Feedback and comments are welcome.  It is almost guaranteed this document will have flaws and pieces that are missing.

The scope of this document encompasses a guideline for a deliverable after completing an Exchange health check in any organization to provide recommendations and next steps and if necessary to remediate and / or stabilize the environment.  The target Exchange versions for this document are Exchange 2010 and 2013, but due to the high level overview approach, similar deliverable documents can be created based on this template for other versions of Exchange.  Alternate data collection methods may be required in these environments to obtain the required data.


After performing  the steps in the process outlined in the Health Check Process, issues present in the environment, performance bottlenecks, and overall health concerns should be understood and steps to address them available.  This is the information contained in the deliverable document.  The steps to obtain this information can be supplied, and further background on a particular topic can also be supplied.  This is the layout selected below.  The following sections will be necessary for a complete deliverable document:

  • Overview
  • Discovery
  • Recommendations
  • Next Steps / Roadmap
  • Reference Material

Health Check Tasks

1.0     Discovery

1.1     Event Logs

  • Determine Critical Events: review and document event log errors and warnings that impact Exchange health as well as overall health

1.2     Microsoft Best Practice Analyzers

  • Run The Microsoft Exchange Best Practice Analyzer:  running this tool against the Exchange Environment will provide a wealth of knowledge and is one of the best tools that can be used to obtain a snapshot status of the environment.
  • Run The Microsoft Best Practice Analyzer:  running the Best Practice Analyzer for general server health is also recommended to catch any issues potentially unrelated to Exchange.

1.2     Topology

  • Servers: number / type / role(s) / names / IP Addresses
  • Server Specifications: CPU(s) / RAM / virtual / physical hardware architecture / number of NICs / OS version(s) / Service Pack level(s) / manufacture of hardware of physical servers or hosts of virtual servers
  • Location(s) of Servers: DMZ / site(s) / high availability / redundancy (if applicable)
  • Network Configuration(s): firewalls / routers / switches / network load of equipment used in messaging transactions
  • Network Services:  DNS and DHCP should be reviewed for accuracy and missing information.
  • Active Directory Domain Controllers:  number / location(s) / number of Active Directory sites

1.3     Hardware

  • Disk subsystem configuration:  SAN storage / physical dedicated disks, IOPS available to the system
  • Disk Partitions:  number of partitions, are the partitions using separate LUNS, location of the transaction logs and database files on partitions
  • Hardware Drivers:  versions, are latest versions of all drivers installed and up to date, and if not provide reasoning

1.4     Usage

  • Mailboxes:  number / type
  • Usage Patterns of Mailboxes:  (high, medium, low) and number of mailboxes in each category
  • Item counts:  number of items in the folders, specifically the “commonly used folders”.

1.5     Clients

  • Client Types:  Outlook, Outlook Web Access (OWA), ActiveSync (mobile devices)
  • Outlook Mode:  Online / Cached
  • 3rd Party Add-ons:  What 3rd party add-ons are running in Outlook

1.6     Miscellaneous

  • unrelated products / software:  what other software is installed on the server, running in the background
  • antivirus and / or antispam software:  installed on the server
  • Other servers sharing resources:  for virtual servers, what other servers are running on the host sharing resources

2.0     Data Collection Tools and Utilities

2.1     Discovery Details

One of the quickest ways to obtain data from an environment is to leverage a script or several scripts if possible.  Below are a couple of scripts that have been very successful in collecting data about Exchange environments.  These scripts may not be the best scripts available and may miss information pertinent to a specific health check, but are good general data collection scripts and they can be run as scheduled tasks to provide snapshots of the environment.

In order to obtain the bulk of information regarding the Exchange servers, the following utility script can be used:  vCheck Script, and can be found here.  vCheck Scripts can check a number of different services in an environment, but the Exchange 2010 vCheck script is the one used for checking Exchange health and information.  It can (and was actually created to) be used and run as a scheduled task.  This could provide daily reports on key information about the Exchange environment.

The information provided by this tool are the following:

  • Server Information (per server)
    • Computer / Server Name
    • Operating System
    • Service Pack
    • Exchange Version
    • Rollups
    • Rollup Install Dates
    • Exchange Edition
    • Exchange Roles


  • Drives (per server)
    • Name
    • Label
    • File System
    • Capacity (GB)
    • Free Space
    • % Free Space


  • Exchange 2010 DAG Information
    • Name
    • Servers
    • Operational Servers
    • Witness Server
    • Witness Directory
    • Alternate Witness Server
    • Alternate Witness Directory


  • Exchange Database Statistics
    • Server Name
    • Database Name
    • Mailbox Count
    • Database Size (GB)
    • WhiteSpace (GB)
    • Average Mailbox Size (MB)
    • Average Deleted Items Size (MB)
    • Mounted Status
    • Circular Logging
    • Last Full Backup
    • Last Incremental Backup


  • Exchange 2010 Database Status
    • Database Name
    • Status
    • Copy Queue
    • Replay Queue
    • Last Inspected Log Time
    • Index State


  • Exchange 2010 Active Database not on Preferred Server
    • Database Name
    • Current Server
    • Preferred Server


  • Exchange 20xx MAPI Connectivity
    • Server Name
    • Database Name
    • Result
    • Latency (mS)
    • Error


  • Exchange Public Folder Statistics
    • Server Name
    • Database
    • Database Size (GB)
    • White Space (GB)
    • Mounted Status
    • Circular Logging
    • Last Full Backup
    • Last Incremental Backup


  • Mailboxes with Mailbox Size sorted by descending size
    • Display Name
    • Server Name
    • Database Name
    • Item Count
    • Mailbox Size (MB)
    • Deleted Item Count
    • Deleted Items Size (MB)
    • Total Mailbox Size (MB)


  • Mailboxes with Dumpster Size sorted by descending size
    • Display Name
    • Server Name
    • Database Name
    • Item Count
    • Mailbox Size (MB)
    • Deleted Item Count
    • Deleted Item Size (MB)
    • Total Mailbox Size (MB)


  • Largest Mailboxes by Total Size
    • Display Name
    • Database Name
    • Item Count
    • Mailbox Size (MB)
    • Deleted Item Count
    • Deleted Items Size (MB)
    • Total Mailbox Size (MB)


Another great PowerShell script to provide a snapshot of the Exchange environment health is simply called “Test-ExchangeServerHealth” and it also generates a report delivered via email.  This script can also run as a scheduled task and provides addition information around the direct health / status of the Exchange environment.

It provides a summary of the status at the top, and then a color coded table to quickly identify areas of concern.

The following information is provided in the table:

  • Server Name
  • Site Name
  • Roles
  • Version
  • DNS test
  • Ping test
  • Server Uptime
  • Client Access Server Role Services
  • Hub Transport Server Role Services
  • Mailbox Server Role Services
  • Unified Messaging Server Role Services
  • Transport Queue
  • Public Folder Database(s) Mounted
  • Mailbox Database(s) Mounted
  • MAPI test
  • Mail Flow test

It also checks for DAG errors and warnings and reports them below the summary.

2.2     Hardware

It is always good to review the general best practices and recommendations provided by Microsoft before starting any health check to familiarize yourself with the general recommendations of an Exchange environment.  This link provides this information for Exchange 2010.  Microsoft and VMware have provided publicly available documents around sizing and resource requirements when configuring an Exchange environment.  The key components for performance is CPU, RAM, and disk IOPS.  Shared disk and virtual environments will change the requirements slightly.  These requirements are well defined and documented in the documents provided by the vendors found here for Microsoft and here for VMware.

2.3     Usage

A general discussion with IT staff will provide a good start to determine how Exchange is used in the environment.  Looking at the following can provide good insight to the general use of Exchange:

  • File Attachment handling (size allowed, how heavy is file attachment used)
  • Retention policies, mailbox sizes, mailbox limits, average number of items in the “common folders” for mailboxes
  • Determine the number and type of mailboxes in the environment currently
  • Determine the usage patterns of the mailboxes (high, medium, low) and the approximate number of mailboxes in each category
  • Determine the item counts for the individual folders as this will have the most significant impact on performance, specifically the “commonly used folders”.

2.4     Clients

What types of clients are being used and how are the clients being used.

  • Outlook clients or Outlook Web Access
  • If Outlook clients are being used, what is the mode (online or offline) being used

What 3rd party add-ons are being used on the Outlook clients

2.5     Miscellaneous items

What other factors will affect performance and / or availability of the Exchange environment.  Look at the following:

  • Antivirus / Antispam software, determine the vendor, version number, and any best practices when running the software on an Exchange server.
  • Unrelated products and / or software running on the Exchange servers.  These can be any service or installed package not installed by default from either the Windows Server installation or the Exchange installation
  • If running in a virtual environment, determine what other servers are running sharing the Exchange environment resources.  This could have a very big impact if resources are not set up correctly and a lot of sharing is happening between the servers.

3.0     Known Issues / Troubleshooting

This section is for the issues that have well defined and tested solutions.  As part of a good health check, if a known issue presents itself, it is nice to provide the generally accepted solution.

Problem: | The scripts don’t appear to be working as expected.

Solution: | Check the script FAQ for details on system requirements for running them.  The scripts in this document both require at least Exchange 2007, a specific version of PowerShell, etc.

Problem: |

Solution: |





PowerShell Scripts


Health Check Deliverables

When providing recommendations, it is important to avoid problem solving and / or troubleshooting of any issues.  The goal of a well-executed health check is to simply provide information to better understand the current environment, and suggest next steps to improve the quality of the environment.

The recommendations should be clear, concise, and based on the discovery results.  The format should be something easily read and understood and should be easy to navigate.  Below is a  list of deliverables one should expect to deliver to the client upon completion of a standard health check.

  • Design / Current layout (Visio diagram)
  • Discovery documentation and notes
  • Executive Summary / Overview
  • Roadmap / Next Steps Recommendations
  • Reference Materials

1.0     Design / Current layout (Visio diagram)

This should include the current layout of the environment as well as any suggested changes to the environment.  It should be simple and concise including only pertinent information.

2.0    Discovery documentation and notes

This information is important and should be included for reference.  It can be included as appendices to the Overview / Summary document.

3.0    Executive Summary / Overview

This is a quick and basic summary of what was found and what recommendations are for moving forward.  This should not be technical at all and should be almost an outline providing highlights.

4.0    Roadmap / Next Step Recommendations

This also can be included in the final documentation.  It should provide recommendations and general ideas regarding the environment based on the discovery documentation.  It should not attempt to solve any issues, but simply provide suggestions on ways to resolve issues going forward.  What steps can be taken to bring the Exchange environment back to health (if unhealthy) and in what order.  What steps can be taken to maintain current level of health (if healthy) and what order based on budget, resources, time, and effort.

5.0     Reference Materials

The articles, links, or other materials that provided the recommendations should also be included so they can be reviewed if necessary.

Last Updated On October 24, 2017