From time to time, someone in the Exchange community outside the Exchange development group comes up with a contribution that adds an enormous amount to many different deployments. I think that the PowerShell script posted by Steve Goodman on his blog may just be in that category.
For years, I have “suggested” (some would say “ranted”) at the Exchange development group about their relative (or total) lack of system reporting. Indeed, at one gathering where an Exchange VP invited me to talk to the engineers about some of the issues that existed in the product, I noted that it was very hard to generate snapshots of system environments or server configurations that could be used to document deployments or provide information to support personnel.
This was in the Exchange 2003 timeframe and while Microsoft has done a good job of addressing some of the other issues that I raised at the time (for example, eliminating the blizzard of undocumented system hacks executed through registry settings and providing a method to automate common administration tasks), they haven’t done anything really to provide system administrators with a way to generate a simple report about an organization and its configuration. Sure, the Exchange 2010 version of EMC boasts the “Organization Configuration” option, but it’s hardly a nicely-formatted and elegant output.
You can make the argument that it’s difficult to generate a comprehensive report about an organization because a) every organization is different, b) every administrator has their own idea of what such a report might contain, and c) the report could take a long time to run if an organization is very distributed or one of the mega-organizations that supports multiple hundreds of thousands of mailboxes. All true, but that’s not a reason for ignoring user requests for such a feature that go back to the original Microsoft Exchange Conference (MEC) in 1996. Perhaps the Exchange community hasn’t been vocal enough in their demands on this point! More likely it’s that the engineers have had better, more interesting things to develop and add to the product. Administrative functions always seem to be the last on any programmer’s to-do list.
In any case, Steve Goodman has done us all a service by generating a very nice Exchange 2010 organization report using PowerShell. Better still, you can download the code and tailor it to meet your own needs – or adopt Steve’s approach to have the report emailed to you automatically on a daily basis. And while the report isn’t formally supported by the Exchange development group, it is based entirely on out-of-the-box Exchange cmdlets and standard PowerShell code so the magic is in its implementation rather than some undocumented and previously unknown technique. In fact, the report is very similar in many respects to a report called “ExArt” that the Exchange development group use to capture information about customer test environments that are running beta versions of Exchange. Which in turn makes you wonder why that report never found its way into the product…
My recommendation is that you read Steve’s blog, examine the sample report that he includes, and download the code to try it out in your own environment. Of course, you’ll practice safe PowerShell by not running the script in your production environment before carefully vetting that it doesn’t do anything nasty… but it doesn’t… so go ahead and give it a try – and do let all know if you amend the script to add something new and interesting to the report!