Windows Vista

Inside the New Microsoft Application Compatibility Toolkit

John Melton


At a Glance:

  • Changes that affect application compatibility
  • Evaluating the impact to applications
  • Managing mitigation and deployment

Windows Vista is coming and it's time to start preparing to evaluate, deploy, and support a new operating system—including new tools, new features, and new training. Of course, your main task will be to determine how this major Windows release will function in your existing environment.

I can't think of a more important place to start than with your overall application portfolio and determining which applications will work correctly with Windows Vista™.

There are some major changes in Windows Vista that could affect application compatibility. Ensuring application compatibility was an important focus during the development of Windows Vista. By testing thousands of applications with each build and providing immediate feedback to the engineering teams on how their changes affected applications, compatibility issues were reduced during the development cycle.

This process resulted in reducing most of the compatibility concerns to a few areas. In this article I'll discuss these areas and provide tips to help you jump the hurdles they may throw in the way of your deployment.

Changes That Affect Compatibility

Some apps are designed to run on specific OS versions, possibly for good reasons, and this can cause installation or program execution to fail before you begin testing an app.

Fortunately, such problems are easily resolved by using the Program Compatibility Assistant (PCA) in Windows Vista. PCA automatically detects possible compatibility issues during installation, then offers to modify the settings to a Windows® XP compatibility mode that may allow you to install and continue testing.

If everything else is functioning properly with the application, it's simple to modify an application version check, or to apply an application fix to the desktop, which lets the application run as though it's on an earlier operating system.

It's a very different information highway today compared to when Windows XP was released in 2001. Unfortunately, there are now many more potholes around system security concerns. Windows Vista has implemented a number of new security features, and these could play a part in your application compatibility experience.

Microsoft® Windows Resource Protection (WRP) in Windows Vista allows applications to work seamlessly even when trying to write to protected system files and registry locations. WRP automatically creates a temporary work area and redirects writes for the application session. This technology allows applications that may have failed in Windows XP to work in Windows Vista, increasing compatibility over previous versions of the OS. However; this temporary work area is only available for the current application session, so you won't be able to persist any data from session to session.

User Account Control (UAC) is the Windows Vista implementation of administrators and standard users you're familiar with from Windows XP. Many companies have struggled to implement standard user scenarios with Windows 2000 and Windows XP. In Windows Vista, Microsoft has provided a much more robust experience for the standard user, adding appropriate elevation prompts when administrator-level tasks are undertaken by standard users or applications. For applications, you'll need to determine which ones might be subject to restrictions when running as a standard user by using the Microsoft Application Compatibility Toolkit and the UAC Evaluator (more on that later), and making sure that applications are not unnecessarily attempting to execute administrator level commands.

Since Internet Explorer® is a significant window to the Internet for many users, Microsoft has taken steps in Windows Vista to reduce the possibility of attacks through the introduction of Internet Explorer Protected Mode. Internet Explorer in Windows Vista will operate essentially as a standard user, limiting its ability to write to areas of the computer in ways that could introduce malware or viruses to the system. You will also be able to use the Internet Explorer Compatibility Evaluator—available with the Microsoft Application Compatibility Toolkit—to detect which intranet, extranet, or Internet applications might be subject to Protected Mode restrictions.

The best thing about creating a new operating system is being able to innovate—providing new features, new functionality, and taking advantage of new hardware technology. However, this innovation can also create some challenges when it comes to application compatibility.

Security plays a major role in Windows Vista, and one area of note is a new API structure for firewall and antivirus applications that is much more robust. However; the additional functionality means many enterprises will need to upgrade to new versions of their third-party firewall and antivirus software. The WinLogon/GINA (Graphical Identification and Authentication) architecture has also been replaced in Windows Vista, so you'll need to examine applications that work with or pass authentication credentials.

You may also be looking at obtaining new, more powerful 64-bit processors and operating systems. While 32-bit applications should work fine on such systems, you'll need to make sure you have 64-bit drivers. Note that 16-bit applications are not supported on the 64-bit Windows Vista platform.

Evaluating Application Impact

The Application Compatibility Toolkit is designed to assist you in inventory, analysis, rationalization, and prioritization of your existing application portfolio. Figure 1 lists the components of the toolkit. Figure 2 describes the individual Compatibility Evaluators included in the toolkit.

Figure 2 Toolkit Compatibility Evaluators

Evaluator Description
Inventory Looks through several system areas, collecting information about the applications on each computer and its associated components.
Internet Explorer Monitors Internet Explorer 7.0 to discover Web-based applications that could have potential compatibility issues. The Web locations are logged for further processing.
User Account Control Monitors user interactions with applications and when requests for elevated security are made, application information is logged for further processing.
GINA Monitors applications for use of credentials based on legacy architectures and logs these applications for needed modification.
Deprecated Components Looks for legacy technology use that is no longer supported in Windows Vista, such as FrontPage Server Extensions. When such usage is detected in applications, they are logged for further processing.
Session 0 Detects specific requests for Session 0 and logs applications accordingly. Session 0 is now fully protected in Windows Vista and applications can no longer run in this session.

Figure 1 Application Compatibility Toolkit Components

Component Description
Compatibility Evaluators Multiple evaluators that can be run on a computer, used for detecting and logging possible application compatibility issues.
Log Processing Takes cumulative compatibility information logged on individual computers and sends it to the central log file at predefined intervals.
Inventory Database Used by the Application Compatibility Manager for reporting and to enable usage of many new fields to help manage the deployment process and status of each application.
Application Compatibility Manager The central management tool providing capabilities to monitor and change information relating to the deployment process.
Microsoft Compatibility Exchange A community resource of shared compatibility information. Additional compatibility information can be retrieved from the Microsoft Compatibility Exchange including results from other customers, Microsoft certification information, and vendor information about the application.

There are basically four steps to understanding and identifying the impact Windows Vista might have on your apps.

First, you need to inventory all the applications in your enterprise and their known status with regard to application compatibility. You may have a software management system like Systems Management Server (SMS) to assist with this, or maybe just a trusty old spreadsheet, but neither provides you with the compatibility status. The Compatibility Evaluators included with the Application Compatibility Toolkit can provide this critical information.

The first step is to create a compatibility package that can be deployed to desktop computers to gather an overall application inventory (see Figure 3). You can include the Compatibility Evaluators to identify applications that may be subject to possible compatibility issues. This package can be deployed through your software management system—it's small, and takes few resources when running on the client. In return, you'll receive compatibility information on your computers and applications.

Figure 3a Creating a Compatibility Package

Figure 3a** Creating a Compatibility Package **(Click the image for a larger view)

Figure 3b

Figure 3b(Click the image for a larger view)

When you get your first report back from the Compatibility Evaluators, you'll want to get the most current compatibility information available. Your next step is to synchronize with the Microsoft Compatibility Exchange. Click on the Send and Receive Data icon, provide your login information, and you'll be connected with the Microsoft Compatibility Exchange. This is your source of compatibility information to help you analyze, rationalize, and prioritize your application portfolio. The Application Report will contain information provided by other community members, software vendors, and Microsoft about applications in your portfolio, showing you at a glance the compatibility status of those applications. In addition, the known issues and possible solutions are easily accessible and can reduce the overall amount of testing you need to do. If an issue has already been identified, there's no need for you to test and rediscover the issue or to hunt down a solution.

Now that you have your application portfolio, the goal is to reduce the number of applications where you need to focus your efforts. The most efficient process is to organize and categorize your applications.

Start by using the built-in filtering capabilities of the Application Compatibility Manager. The inventory listing will contain many applications you may not be concerned about (see Figure 4). For example, if you will be replacing hardware, there's no need to worry about hardware drivers or special applications delivered by the OEM.

Figure 4 Filtering in Application Compatibility Manager

Figure 4** Filtering in Application Compatibility Manager **(Click the image for a larger view)

The next step is beginning to formulate how you would like to organize these applications to reduce the number that should receive attention. Consider whether applications are global or specific to particular geographies or departments. Where can you rely on vendors to support their applications, and which internal line-of-business applications need attention from your staff? Possibly create a category for developers and a subcategory for each developer to assign programs. Once you've determined your organizational strategy, you can begin to sort your apps.

You can create categories and subcategories using the Application Compatibility Toolkit by selecting the Organize features and creating your own personal entries (see Figure 5). These entries will be available in the reporting options so you can create very specific reports for each subcategory item.

Figure 5 Assigning Categories

Figure 5** Assigning Categories **

Your final step in the analysis phase is to assign categories to each of your applications or computers. A good area to focus on is your mobile workforce as Windows Vista provides many new features to improve their experience, so you'll want to create a category or subcategory for those applications. You can assign multiple categories to applications, so create a development team category with team member names as the subcategory, which will allow you to track who has responsibility for which applications.

Managing Modifications and Deployment

After initial categorization of applications, you can further refine the list. It is possible for several hundred applications to show up on a single machine, but you shouldn't be concerned with every possible application. Remember, the goal is to reduce the list of applications significantly in order to focus upon necessary mitigation efforts. Candidates for rationalizing out of the priority list include apps that may be reaching the end of their useful life and are in the process of being updated or rearchitected. You may also find multiple versions of applications exist across the organization that could be consolidated to a single version that is easier to support. Applications may have been identified by their vendors or the Microsoft Compatibility Exchange as compatible and thus need no further attention. And you may discover applications that are not in a geography or department planned for upgrade.

The Custom Reports features in the Application Compatibility Toolkit can assist in rationalizing applications. You can select specific categories so the list of rationalized applications can be reduced to a specific group, geography, or location. This should help you focus on areas where more compatibility work is needed.

After refining the application portfolio down to a manageable set of applications, you can now zero in on a smooth, timely deployment of the new operating system by working on a clear set of application compatibility concerns. Using the Prioritize feature, you can assign a specific priority and category for each application.

There are some additional features in the Application Compatibility Toolkit that can also help you with the process of managing application status and deployment information. Choosing between Testing, Mitigating, and Ready to Deploy will let you track the status of a particular application. In the Reports section, you'll be able to see the overall deployment status of all of the applications.

Here you will also be able to add your own information about the application. You can certify the application, and create or edit a new issue specific to that application (see Figure 6). Sharing this information with the Microsoft Compatibility Exchange will help other admins when they are analyzing their own environments.

Figure 6 Recording Compatibility Status for an Application

Figure 6** Recording Compatibility Status for an Application **(Click the image for a larger view)


Now you know where to focus your efforts before starting your deployment of Windows Vista. For more information on the Microsoft Application Compatibility Toolkit, visit

John Melton has been in Information Technology for over 20 years and has been with Microsoft for the last 10 years. John is a former Systems Engineer, and is now a Group Product Manager for Windows Vista and Microsoft Application Compatibility.

© 2008 Microsoft Corporation and CMP Media, LLC. All rights reserved; reproduction in part or in whole without permission is prohibited.