SolutionBase: Application compatibility testing for Windows Vista Deployment

Windows Vista isn't as backward compatible with applications as are older versions of Windows. How can you tell if an application will work in Vista in a corporate setting? That's where the Application Compatibility Tester comes in. Brien Posey shows you how it works.

One of the most critical tasks in preparing a deployment of Windows Vista is to test the compatibility of your applications. Many applications that run perfectly under Windows XP simply do not run on Windows Vista. Since you don't want to spend time and money to deploy Vista if none of your users are able to run their applications afterward, it is absolutely imperative to test each application ahead of time.

What's the best way to test?

Of course, you still have to make sure to test all of the applications in your organization. Although it's tempting, you don't necessarily have to set up a workstation and install a copy of every application your company uses (not at first, anyway). Unless you are very thorough in your testing, installing all those applications onto a workstation isn't a good testing method for of couple of reasons.

Depending on the size of the company, there might be hundreds, or even thousands of applications in use. If you manually load each application onto a test system, there's a good chance you might accidentally skip an application. Even if you cover all of the applications, some applications have probably been patched to a version other than what's on the installation CD.

The other reason I don't recommend installing all of your applications onto a workstation as your testing method is because some applications initially appear to work even though they are not completely compatible with Vista. For example, when Vista was first released, I attempted to install some financial software onto one of my workstations. The software installed and loaded correctly, but when I tried generating a report through the software, it would cause the application to crash. Therefore, if you plan on installing applications as your basis for evaluating application compatibility, you should be prepared to test all of the application's features.

The good news is, you don't have to manually install each and every application to find out if the application works with Vista. Microsoft has already tested countless applications to determine whether or not they will work with Vista. You can use the results of these tests to help you to determine whether or not your applications will be Vista compatible. The Application Compatibility Toolkit allows you to perform a software inventory across your network and then cross reference each application with Vista compatibility information.

Although the Application Compatibility Toolkit is included as a part of Microsoft's Deployment Workbench, I recommend going to the Microsoft Web site to check for the latest version. This article is based on version 5.0.

The Application Compatibility Toolkit v. SMS Server

The Application Compatibility Toolkit is far from being the only solution available for preparing for a Vista deployment; a competing solution is Microsoft's SMS Server. Of course, this begs the question of which solution works better? If you had to use one solution or the other, I would recommend using the Application Compatibility Toolkit rather than using SMS Server. If you happen to already have SMS Server in place, however, the two tools can complement each other nicely. Table A illustrates each tool's strengths and weaknesses in planning for a Windows Vista deployment.

Table A


Compatibility Toolkit

SMS Server 2003

Includes tools specifically designed to identify application compatibility issues



Automatically searches the Internet for updates to application compatibility information



Requires pre-existing infrastructure



Specifically designed for dealing with excessive numbers of workstations



Requires the installation and subsequent removal of an agent



If this information doesn't provide enough compelling reasons for using the Application Compatibility Toolkit, then remember that the Application Compatibility Toolkit is free. A copy of SMS 2003 R2 with a 10-device license will set you back $1,219.

Compiling an application inventory

Before you can collect an application inventory, you must configure the Application Compatibility Toolkit to use a SQL Server database for data collection. Many Microsoft utilities will allow you to use MSDE as an alternative to using SQL Server; but sadly, the Application Compatibility Toolkit doesn't seem to give you that option.

Begin the configuration process by opening the Compatibility Administrator (found on the All Programs | Microsoft Application Compatibility Toolkit menu). When the Configuration Wizard begins, Windows will display the dialog box, as shown in Figure A. As you can see in the figure, the wizard requires you to configure a SQL database, a log share, and a log processing service account.

Figure A

The wizard requires you to configure a SQL database, a log share, and a log processing service account.

Press Next and you'll see a screen asking you if you want to install the enterprise configuration, or if you would rather just view and manage the reports. Since there aren't any existing reports yet, select the Enterprise Configuration option and press Next.

At this point, you will see the Configure Your ACT Database Settings screen, as shown in Figure B. Although this screen looks simple enough, this is probably the trickiest screen in the entire utility.

Figure B

The Configure Your ACT Database Settings screen is especially tricky.

Initially, the SQL Server drop-down list is empty. You must press the Browse button to get the dialog box to display a list of the SQL Server instances in your organization. Simply selecting a SQL Server from the drop-down list isn't enough. You must press the Connect button to establish a connection to the database server. The Connect button isn't shown in Figure B, but it will appear in the spot where the Refresh button is shown.

Once you have established a database connection, you must create a new database on the SQL server. To do so, just type the name of the database that you want to create and press the Create button.

The next screen is problematic; it will display all of the SQL Servers in your organization, even if it cannot use them all. While I was preparing to write this article, I initially selected a server that was running SQL 2000. I was able to connect to the database server and create a new database. However, the Application Compatibility Toolkit was unable to compile any application inventory information. There were no obvious error messages (although I did find an error embedded in an XML file); the process just didn't work. It wasn't until I upgraded the server to SQL Server 2005 that the Application Compatibility Toolkit began working correctly.

Once you have entered your database information, press Next and you will see a screen prompting you to configure your log file location. To do so, simply create a directory on your computer that can be used to store inventory logs collected from the workstations that you are testing. Once you have created this directory, enter the directory's path in the space provided and give it a share name. Depending on the version of Windows you're running the Application Compatibility Toolkit on, you might have to manually assign permissions to the share. If you find yourself having to manually specify the permissions, keep in mind any computer that you're testing will need to be able to write files to the share.

Press Next and you will be prompted to specify an account that will be used to extract data from the logs and write it to the database. It's easy to select the Local System account, but doing so tends to cause problems; if your database is located on another computer, then the Local System account won't have access to the database. I tend to think it is better to create a domain user account and give it the appropriate permissions.

After specifying the account you want to use, press Next; a message will appear, informing you that the configuration of the Application Compatibility Toolkit is successfully finished. Press the Finish button and Windows will load the Application Compatibility Manager, as shown in Figure C.

Figure C

Press the Collect button to start the data collection process.

Press the Collect button and you will be taken to a dialog box similar to the one shown in Figure D. The basic idea behind this dialog box is that the Application Compatibility Toolkit requires you to install an agent onto any computer that you want to inventory. However, this agent needs to be aware of your configuration and preferences. Therefore, the dialog box gives you the chance to enter your preferences. When you press the Save button, the agent file will be placed into your Documents folder. The filename will match the package name you enter.

Figure D

You need to load an agent on the workstations you want to inventory.

Once you have created the agent, the next task is deploying the agent to the workstations you want to inventory. You can use any number of methods to deploy the agent. Some of the more common methods involve using SMS Server or assigning the agent to the workstations via group policy. Another option is to run the agent as a part of a login script. You could even e-mail a copy of the agent file to your users.

Keep in mind that the agent installs silently. If you want to confirm that the agent has been installed on a PC, I recommend taking a look at the Add / Remove Programs applet in the Control Panel.

Once the agents have been installed, it sometimes takes a while for things to happen in the Application Compatibility Manager. To view the inventory progress, press the Collect button in the lower-left corner of the console and then press the By Status link in the Current View section. When you do, you should see a summary of the computers that the agent is collecting an inventory from, as shown in Figure E. Keep in mind that you may need to press the Refresh button to see the most current information.

Figure E

The By Status screen will show you the status of the inventory collection process.

Keep in mind that this screen provides you with verification that the process is working. If you are unable to see any information listed on the By Status screen, then it is a good indication that you have a problem.

When the process completes, press the Analyze button; you will see a screen similar to the one shown in Figure F. As you can see, this screen lists the applications that have been detected. The screen also includes columns for your assessment of the application, as well as the assessments of the application's vendor and the IT community.

Figure F

The Analyze screen displays the application inventory and compatibility information.

You will notice there is no compatibility information listed in Figure F. This is because I ran the agent on a machine that was already running Windows Vista; had I run the agent on a Windows XP machine, the Vendor Assessment and Community Assessment columns would have been populated for most, if not all of the applications.

This tool allows you to document your assessment of an application. Once you have made up your mind about whether or not an application is Vista compatible, just right-click on the application and select your assessment level (Works, Works With Minor Issues, or Does Not Work). Upon doing so, your assessment for the application will be displayed, as shown in Figure G.

Figure G

The Application Compatibility Manager allows you to document your assessment of various applications.

As you can see, manually inventorying the applications that are running on your network can be a big job. Fortunately, the Application Compatibility Toolkit is designed to simplify the inventory process and to cross-reference your software inventory with Vista compatibility information.