The Program Compatibility Wizard and Shell Extensions facilitate remediation of minor compatibility issues; however, their functionality and applicability in an enterprise environment is rather limited. Fortunately, Microsoft provides another, more advanced and powerful, technology in the form of Windows Application Compatibility Toolkit (currently at version 3.0). The toolkit, which can be installed on Windows 2000 SP3 or later, Windows XP, and Windows 2003 Server, consists of documentation and tools to assist with designing, deploying, and supporting applications.
It is divided into three main components:
Analyzer accepts Collector-generated logs as input. It stores them in a compressed format as .CAB files, processes them, and dumps the results in an Access or SQL Server database. When launching the tool, you must provide the location of the logs and designate a target database. To check compatibility status, Analyzer connects to the online database maintained by Microsoft. There is also an option to perform this step at a later stage. Information is merged with the database contents, and results are listed in the form of a table, with Application Name, Status (compatible, compatible with issues, incompatible, or unknown), Version, Company Name, and Machines columns.
Application Verifier is geared toward software developers. It helps identify compatibility and stability issues via a graphical interface from which you specify which executable you intend to test. For each, select what is to be tested (e.g., detecting an invalid handle, registry, or filesystem use; calls made to obsolete APIs; and potential security issues) and click on the Run command button. The corresponding application is then loaded, and its behavior recorded in a log, which can be reviewed by clicking on the View Logs button. Errors and warnings are displayed with corresponding icons (to filter out non-relevant entries, select the “Show errors and warnings” option).
Windows XP and Windows 2003 deal with compatibility issues by storing information about legacy applications and associated fixes in compatibility databases residing in the AppPatch subfolder of the Windows installation directory. This subfolder contains several already prepackaged databases, such as Apphelp.sdb (which links applications and associated help messages), Sysmain.sdb (which links applications and associated compatibility modes and fixes), Drvmain.sdb (which links drivers and associated help messages), and Msimain.sdb (which links Windows Installer .MSI files and associated help messages). In addition to these prepackaged databases, you can create custom ones (residing in the AppPatchCustom subfolder).
To create a custom database, launch the Application Compatibility Administrator. You should see a New Database listed under the Custom Databases subnode. Its context-sensitive menu (as well as the Database menu of the main menu) gives you the option of creating a new Application Fix, writing an Apphelp Message, or defining the Compatibility Mode.
After selecting the first option, you will be prompted for the application name and the location of its executable, followed by the compatibility mode, compatibility fix, and matching information (used to identify the same program on other computers). The second option, after prompting for the application name, the location of its executable, and matching information, will ask you to specify the help text message, URL reference with more detailed description of the problem, and the help behavior (determining whether the application will be allowed to run after the message gets displayed). Note that you can also add a help message to an existing Application Fix. The third option enables you to define your own compatibility mode, which will encompass all compatibility fixes selected from the list included with the Administrator. This simplifies future configurations (since you can select a single custom compatibility mode instead of a number of corresponding compatibility fixes). After you’ve finished customizing, save the database to an arbitrary location. At this point, you are ready to install it and, potentially, deploy it to other computers.
Installation can be performed directly from the Application Compatibility Administrator menu (using the Install option from the context sensitive or File menu) or with SDBINST.EXE executable, which is included as part of the Windows XP (and Windows 2003) operating system files. The first option comes in handy during testing, but its graphical interface and local scope of operations are limiting factors when considering larger deployments. SDBINST.EXE on the other hand, is much more versatile, since it functions as a comand-line utility and can be incorporated into various deployment scenarios. It takes one input parameter, specifying target database and a number of switches, which determine the mode of operation (installation or uninstallation, quiet or non-quiet).
If none of these methods resolve your application issues (especially when dealing with Windows 2000 applications not supported on the Windows XP platform), consider setting up a virtual instance of the operating system on a Windows XP desktop (such as a VMWare virtual server or Microsoft Virtual PC). Another possibility would be to use a thin-client solution, such as Microsoft Terminal Services or a Citrix Metaframe-based product.
Marcin Policht obtained his Master of Computer Science degree about 20 years ago and has been since then working in the Information Technology field, handling variety of responsibilities, but focusing primarily on the areas of identity and access management, virtualization, system management, and, more recently private, hybrid, and public cloud services. He has authored the first book dedicated to Windows Management Instrumentation and co-written several others dealing with subjects ranging from core operating system features to high-availability solutions. His articles have been published on such Web sites as ServerWatch.com and DatabaseJournal.com. For his contributions to the Microsoft technical community, he has been awarded the title of Microsoft MVP over the last ten years.
Property of TechnologyAdvice. © 2025 TechnologyAdvice. All Rights Reserved
Advertiser Disclosure: Some of the products that appear on this site are from companies from which TechnologyAdvice receives compensation. This compensation may impact how and where products appear on this site including, for example, the order in which they appear. TechnologyAdvice does not include all companies or all types of products available in the marketplace.