Generate Exchange Reports using PowerShell

If there is one thing that has always been lacking in Exchange its a mechanism to inventory and report on your infrastructure. Personally I think its something that should be in the Exchange Management Console, but that's a different story…

The good news is that Steve Goodman has released an excellent bit of PowerShell that provides some much needed reporting and inventorying information via native PowerShell.

2011-06-24_1316

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)

 

Neil Johnson [neiljohn@microsoft.com] Senior Consultant, Microsoft Consulting Services, UK