In April 2003, Microsoft quietly released version 3 of its Windows Application Compatibility Toolkit (ACT). It’s a great set of tools for assisting IT professionals in migrating to Windows XP, but it can also be used for more than that if you look “outside the box.”

Microsoft Application Compatibility Analyzer (MS ACA)—one of three components that make up the Windows Application Compatibility Toolkit—was designed to assess an organization’s software base in preparation for a Windows XP migration. I’ve found however, that it can also be used as a mini software inventory system, particularly in small to midsize organizations that don’t want to spend big money for Microsoft Systems Management Server or Novell’s ZENworks. MS ACA can be used for multiple sites, it can store the data in either a SQL Server or Access database, and it comes with a full browser-based GUI for ease of use. It’s a very cool product, and best of all, its completely free!

Application Compatibility Analyzer overview
The Application Compatibility Analyzer is part of the Microsoft Compatibility Toolkit—a collection of tools designed to help developers and network administrators/support professionals troubleshoot compatibility issues with Windows 2000 Service Pack 3, Windows XP, and Windows Server 2003. You can download the 23.3-MB toolkit here. The toolkit has three major components:

  1. Microsoft Application Compatibility Analyzer 1.0: This tool collects software and limited hardware information from computers, and stores the information in an XML document. These individual XML documents can be rolled into a separate database and used to validate Windows XP compatibility as well as to provide an excellent inventory database system.
  2. Windows Application Verifier 2.5: The Windows Application Verifier is targeted at application developers.
  3. Compatibility Administrator 3.0: This tool enables the building of a compatibility database consisting of known combinations of patches and fixes for supporting specific applications running on Windows 2000, XP, or Windows 2003 Server. This tool is targeted at support staff and network administrators within an organization.

During the toolkit’s installation, you can choose which of the three components you want to install—a full installation requires 45 MB of free disk space. For the purpose of this article, I will only be installing the Application Compatibility Analyzer, which requires about 38 MB of free disk space.

The Application Compatibility Analyzer is made up of two separate parts: the Collector and the Analyzer. I’ll use both to complete the software inventory in this example.

The Collector
The Collector is a 1-MB command line tool that does exactly what its name implies. It collects information from a computer and stores that information in a log file, which is later used by the Analyzer. This information includes some basic hardware data such as processor speed, computer model, RAM, applications installed, and so forth. The Collector can collect information on systems running the following:

  • Windows 95
  • Windows 98
  • Windows 98 Second Edition
  • Windows ME
  • Windows NT 4
  • Windows 2000 Professional
  • Windows 2000 Server
  • Windows XP Professional
  • Windows Server 2003

The Collector does not need to be installed on the computer from which it is executed, requires no user input, and runs minimized in the Windows System Tray. It does, however, want to connect to the Internet—a fact my personal firewall software alerted me to. I’m unsure of why this happens, because the log file is only used by the Analyzer. (If anyone knows why this occurs, please share this knowledge with the rest of us and post a comment to this article.) The time required to gather the information is between 5 and 10 minutes, depending on the speed of the computer and the number of programs to analyze. If no target destination or format is specified, the results are saved to the machine’s Desktop as a .CAB file named computername{session identifier}.CAB.

You can start the Collector in several ways: from a login script, from a floppy disk, as a Group Policy, as a published application (SMS), or even as a packaged object inside an e-mail message. I’m not a fan of using the floppy disk approach for the simple reason that this tool is designed to run automatically, seamlessly, and without human intervention. Using sneaker-net to visit a PC just to launch the Collector seams to defeat the intent of the tool.

Typing COLLECTOR.EXE /? displays a thorough listing of the many command-line arguments available (COLLECTOR.EXE [/?] [/F [path] [/I] [/S] [/N] [/A]] [/O [path]] [/X] [/D [days]] [/E [name]] [/P [file_name]] [/Y] [/K] [/C [E][N][S][G][W]]). This information is also available in the readme.txt file found in the \Windows Compatibility Toolkit\Applications\Application Compatibility Analyzer directory or in the directory where you chose to install the Compatibility Toolkit. For this example, I’ve elected to launch during the login script in the following manner:
collector.exe /X /E %site% /D 7 /O S:\Inventory\Software

This creates an XML document as the output file, using our “site” environment variable (defined in our login script) as the department, if the previous collection was not in the past seven days, and directs the output to a central folder on a server. The file name will begin with the computer name of the workstation followed by a CRC “signature,” which identifies that unique session (e.g. WRKSTN1.{746AFA32-30FA-407C-87F7-95A446B343FF}.XML). My personal preference is to save files using just an XML extension for two reasons: First, it eliminates one step when the Analyzer program merges each log file into its database, and second, the .XML file is viewable by Internet Explorer or Notepad in its native format.

One thing to remember, since the Collector does not install itself into the computer as service, you’ll need to schedule it to run every X days, and you’ll need to use the Scheduled Tasks service to do so. My preference is to have it invoked during the login script and configured to create a new XML file only if a specific number of days has passed by using the /D option.

The Analyzer
The real power behind the tool is the Analyzer program. Analyzer is a relatively small GUI application for reviewing all the data that’s been gathered by the Collector utility. The Analyzer requires Internet Explorer 5.5 SP1 and either Windows 2000 Professional, Windows 2000 Server, Windows XP Professional, Windows Server 2003 or above, or Windows 2000 or above. To run the Analyzer, simply double-click the analyzer.exe file found in the \Windows Compatibility Toolkit\Applications\Application Compatibility Analyzer directory.

Once the Analyzer is running, the following steps will allow you to create the database:

Step 1: Welcome
The welcome screen introduces you to the Analyzer and provides a link to a Collector help file. Click Start Using The Analyzer to move to the next step.

Step 2: Create/Open Database:
Here you will choose either to create a new database or to open an existing one. If you choose to create a new database, click Create New Database and you will be asked to choose between an Access or SQL database—Access is selected by default. If you select Access, you’ll be prompted to enter the location of the .MDB file that will be created, as shown in Figure A. If you select SQL, you will be prompted to select the SQL server you want to use and enter the name of the database to open or create. If you choose Open Existing Database, you’ll be prompted to enter the location of the Access or SQL database. Unless your organization has more than 1,000 workstations, however, I recommend you choose Access for simplicity’s sake. Once you enter the appropriate database information, click Continue.

Figure A

Step 3: Specifying Collector log file location(s)
At this point, you’ll enter the location of the log files you created with the Collector, as shown in Figure B. Click the Add button to specify the location of the log files, then click Continue.

Figure B

Step 4: Connect to Microsoft Compatibility Database
The Application Compatibility Analyzer will now ask you if you want to connect to Microsoft’s online Compatibility Database now or at a later stage in the process. The Compatibility Database will allow the Analyzer to determine if your applications are compatible with Microsoft products. If you want the Analyzer to report on the compatibility of your application, choose the option to connect now. If you simply want to know what software is installed on your machines, click connect later. Now click Continue to move to the next step.

Step 5: Create the database:
The Application Compatibility Analyzer now shows you the number of log files that will be used to create the database and the combined size of those files. Click the Start button to create the database. Once the database has been created, you’ll be presented with an Application Summary screen as shown in Figure C.

Figure C

Getting information from the Application Summary
Let’s examine in detail the Application Summary window’s various sections— Current View, Report Options, and Resources—beginning with the left-hand pane.

Current View
This pane establishes the rules for what will be displayed in the Application Summary window. It also shows some very useful statistical information in the Status section. Here we see the summary count of applications as they relate to Windows XP compatibility. Clicking on all by the Status column heading will sort the data according to the selected column. You can also use the Search field to filter for selected applications. For instance, performing a search for Office will display all applications with the word “Office” in the name.

For those using this program for it’s intended purpose, as a tool to aid in migrating to Windows XP, the data is invaluable. Positioning the mouse over any of the sub-categories and clicking will quickly display the corresponding items in the Application Summary window. For example, clicking on Compatible With Issues would display Figure D.

Figure D

By selecting any of the Status sub-categories, you’re actually applying a filter against the database. To remove the filter, simply click Remove All Filters.

If you want to further refine the data that is displayed, select Change Filter Criteria and choose which application filters to apply from the following choices:

  • Operating System: Windows 2000 Professional (Service Pack 3), Windows 2000 Server (Service Pack 3), Windows Server 2003, Windows XP Professional, Windows XP Professional (Service Pack 1)
  • Provider: Microsoft or vendor
  • Compatibility Level: Compatible, Compatible With Issues, Incompatible, Unknown
  • Departments: Your various office locations

Report Options
The Report Options pane allows for the following:

  • My Organization’s Reports is the mechanism for switching between Application Summary view and All Machines view.
  • Add Logs To This Database is the mechanism for importing the “collected” XML document into the database. Different source locations can be drawn from, which means that you can use the Analyzer to gather information from different office locations. If you chose to do so, I suggest using the Department option as the identifier for each site when running the Collector utility. Also, by using UNC location references, you’ll not be restricted to having mapped drives to each data location.
  • Connect To Microsoft will retrieve the compatibility test results for each of the applications contained in the current database. You can continue to use the Analyzer program, but you may notice some sluggish performance. In the upper right corner of the application, you’ll see a status bar indicating the percentage complete.
  • Print Report prints the contents of the data displayed either in the Application Summary view or the All Machines view. You have the option of printing all or a portion of the data being filtered.
  • Save Report provides for the saving of the filtered data as a filtered view that can be recalled for future reports.

The Resources pane is a somewhat mundane collection of three links:

All Machines
All Machines is the filtered data presented in a computer-centric view. Rather than displaying all the known applications and then drilling down to see which PCs have a particular software package installed, the data view is presented by PC first, with the capability to drill down into what application is installed on a particular computer. I found this view of less value than the Application Summary view, but it was still useful to see that certain PCs where way off the charts with respect to how much software was installed. In our organization most computers had between 40 and 80 detected applications installed. When I noticed a couple in the 200+ range, it set off some alarm bells.

Figure E is a sample screen capture from the All Machines report:

Figure E

Clicking on a single machine name will display some basic hardware information about that computer (see Figure F).

Figure F

At the bottom of the Machine Details screen is the statement regarding Windows XP compatibility, as well as the link to view the applications running on that particular PC.

Clicking the See Applications link will display the detailed application listing for the selected computer (see Figure G).

Figure G

A functional and free tool
Overall I’ve found the Application Compatibility Analyzer to be an indispensable tool when performing a Windows XP migration, as well as an extremely functional software inventory tool. What makes Analyzer such a compelling tool is it’s simplicity of the use, the detail of data collected and reported, the ability to cross reference virtually any piece of information, and the fact that it’s free.