Included in this month’s Exchange Web release (direct link) is a new analysis tool called the Microsoft Exchange Server Best Practices Analyzer Tool.  ExBPA is a revolutionary new analysis tool that checks an Exchange deployment, looks for known problems, and generates a report on what it has found.  It’s pretty straightforward stuff, but there are a lot of things to look at.  It accesses data from Active Directory, the registry, the IIS metabase, perfmon, WMI, and flat files.  It also does some simple protocol testing.  In all, it gathers over 1200 settings and checks them against over 1000 rules.  And we’ve really just scratched the surface.

There are a number of pretty cool features about this utility.  The tool is driven off of a configuration file that tells it exactly what settings to look for and what rules to use to analyze them.  The first thing the tool does when you run it is look for the latest version of the configuration from the Web and downloads it if so directed.  At least initially, we are expecting to update the configuration file on the Web every couple of weeks.  The best part about this tool is the way it provides us with a framework for building system expertise from many different people and sources and automating them for everyone’s benefit.  Another cool thing is the way it runs.  Using Active Directory, it will discover your deployment and then in turn access each server in the topology (you can scope it to just access a subset of servers, but by default it will do an entire organization).  It runs entirely agent-less, so all you need is to install it on a client machine, give it credentials, and off you go.  It generates two kinds of reports.  One is a roll up of all the issues it discovered.  For each critical issue found, it provides a link to a Web article that goes into detail about what the message means and what should be done about it.  Over three hundred Web articles have been written for V1.  The other report is in the form of a tree view that not only shows the issues found but all the data that was gathered as part of the analysis.  It essentially provides a point-in-time snapshot of an Exchange configuration.  Once gathered, such a snapshot could then be accessed entirely independently of the original deployment. 

The tool will not have an adverse affect on system performance (except on the machine it is running on – it uses a lot of CPU and memory when it is analyzing an entire organization), so it can be run at any time.  It will take some time to run, particularly when doing a large organization.  In Microsoft’s own Exchange network, which contains about 100 servers, it typically takes between 2 and 3 hours to run.  We’ve estimated it would take our sys admins weeks to conduct this kind of analysis manually.  It can do a single server in anywhere from 30 seconds to 10 minutes or so, depending on the speed of the network link between ExBPA and the server it’s looking at.  It generates about a meg worth of data per server. 

The tool can be used in a number of ways.  It can used to do a proactive health check of an entire deployment, potentially finding problems that have been waiting in the wings but have not yet manifested themselves in a serious way.  It can be used to assist troubleshooting of a particular issue.  It will become a standard part of a support call, so our support engineers can quickly obtain information on a problem server or deployment and not have to go back and forth with the customer trying to glean this piece of data or that as the analysis progresses (this tool will replace other less powerful tools currently being used, such as exchdump).  In many cases it will possibly eliminate the need for a support call at all by automatically identifying the problem itself.  ExBPA can also be used as an archival tool, just keeping around old snapshots so you can track changes over time (although we do not automatically do any run-to-run analysis right now – maybe in V2).

This utility has been run in several dozen customer deployments by Microsoft support engineers during its beta release, and we have already incorporated a lot of the usability and functionality feedback we received from them.  We expect to get a lot more feedback from you!  A new newsgroup, microsoft.public.exchange.tools, has been set up to take this feedback and help out with any issues that may come up when running it.  I invite everyone to try this out and see how it works.  One word of caution: the tool tends to generate a lot of output, so don’t panic when you see the report!  Most of the issues, even the critical ones, have likely been around for some time in your deployment and if they haven’t hurt you yet you probably have at least a little time to take care of them before they cause real problems.  So just take the issues one at a time and consult the articles as needed.  If you get really stuck on something, try the newsgroup.

We will continue to be investing in this tool moving forward.  In V2, which is scheduled with the next Web release sometime in 2005, we plan to have an integrated solution with MOM as well as a host of new features and some localization for other languages.  There are also plans to make this a fully integrated part of the Exchange administration experience down the road.  Also, expect to see best practices analyzers for other Microsoft server products in the future.  SQL already has one and BPAs will be part of the Windows Server System Common Engineering Criteria (WSS) that all our server products will be complying with over the next few years.  Our senior VP, Paul Flessner, is particularly excited about these kinds of tools in general and was quite enthusiastic about ExBPA when we he saw it.

We’ve had a lot of fun developing this tool, and we hope you will find it useful.

- Jon Avner