I wanted to give a shout out to Steve Goodman who put togethor a little powershell script that you can run to produce a nice little html report of your exchange envrionment.

Generate Exchange Environment Reports using Powershell

imageUpdate 20th June – V1.1 – Bug fixes, Exchange 2007-only support in addition to 2010/2010+2007, and new features listed below.

As an Exchange administrator, there’s times when it’s useful to have a visual, straightforward and concise document that gives you a good overview of your environment. Although with tools like Visio and Word you can make such a document, it’s hard to keep these documents up to date or use previous versions to track and check changes.

This script, inspired by the output of an Exchange TAP tool, aims to automatically generate a report that gives you an overview of your environment, Exchange 2007 and 2010 servers and database availability groups – in particular:

  • Total Servers per Exchange version & service pack
  • Total Mailboxes per Exchange version & service pack
  • Totals for Exchange roles across the environment
  • A site-by-site breakdown for the following:
    • Mailboxes per site
    • Exchange servers, version, update rollup (new), service level, highlighted installed roles, OS version and service pack
  • A breakdown of each Database Availability Group including:
    • DAG name, member count and member list
    • Database information such as
      • Name
      • Mailboxes per database and Average Size
      • Archive mailboxes per database and Average Size (new) – only shown if a DAG DB includes Archive mailboxes
      • Database and whitespace size
      • Last full backup date/time (new) – only shown if at least one DAG DB has had a full backup
      • Circular Logging state (new) – only shown if at least one DAG DB has circular logging enabled
      • Server hosting the active copy
      • List of servers hosting copies and copy count
  • A breakdown of Non-DAG databases including Exchange 2007 DBs, including the database information above, along with Storage Group name (where applicable). (new)

The script doesn’t support detailed information about Exchange 2007 CCR/SCC clusters, but these are shown as ClusMBX in the output. At the moment, the script doesn’t show Public Folder information but if there is interest I can add extra features; and of course the source is provided should you wish to alter it to your own needs.

To be able to execute the script, you need to use the Exchange Management Shell (the latest version for your environment, with Powershell 2.0) and be able to get information about AD Sites, Exchange Servers, Mailboxes, Database Availability Groups and Databases. It uses WMI to retrieve OS information and detect Exchange 2007 clusters and calculate Exchange 2007 database size and Remote Registy calls to get Update Rollup information. A normal Exchange administrator should be able to perform these tasks.

Executing the script is straightforward – the only setting you need is to specify where to write the HTML file:

.\Get-ExchangeEnvironmentReport  -HTMLReport c:\report.html

You can if you like set this up on an automatic schedule and get it emailed daily. If you want to see how, I’ve uploaded a quick video here.

As usual, the script is provided below as-is without any warranties. You can download the script ready to use at the bottom of this post. Comments and suggestions are always welcome.


Download the script here http://www.stevieg.org/2011/06/exchange-environment-report/