Deploying Windows 7 - Part 12: Planning for Application Compatibility

by [Published on 19 Nov. 2009 / Last Updated on 19 Nov. 2009]

This series of articles on deploying Windows 7 continues by discussing how to plan for application compatibility.

If you would like to read previous articles in this series, please go to:

You can find more information about automating LTI deployment in the Windows 7 Resource Kit from Microsoft Press. I'm the lead author for this Resource Kit and I also maintain the Unofficial Support Site for the Windows 7 Resource Kit where you will find the latest updates and other useful information.

An important issue to consider when planning any kind of desktop deploying is application compatibility. If you are upgrading to Windows 7 from Windows Vista, this will hopefully not be a Bit issue because applications designed for Windows Vista should, in almost all cases, work properly on Windows 7. If you are migrating desktop computers from Windows XP to Windows 7 however, you will need to take time to give careful consideration to what you may need to do in order to ensure your applications will function properly on the new operating system.

Why Applications Break

What are the reasons applications designed for Windows XP sometimes “break” when you try and run them on Windows 7? A couple of the main problem areas are:

  • User Account Control – Applications that require administrative privileges and which were designed for Windows XP may not work properly on Windows 7 even if the user is a member of the local Administrators group on his computer. Microsoft has tried to minimize this issue by including application compatibility shims in Windows 7 for many common applications, and these shims will often even allow users to run such applications as standard users instead of administrators. Some older applications however simply will not work on Windows 7, even when the user is a local admin. In such a case you may need to use one of the following tools described below to run your older application separately from the Windows 7 operating system: Virtual PC 2007 SP1, Windows Virtual PC with Windows XP Mode, Microsoft Enterprise Desktop Virtualization, or Microsoft Application Virtualization.
  • User profile structure and versioning – The user profile structure was redesigned in Windows Vista to make it more rational. If an older application was designed to access user profile files in the correct way using API function calls and environment variables, these user profile changes should not impact whether the application will run or not in Windows 7 since Windows 7 includes directory junctions for common Windows XP profile folders like My Documents. If however an older application has Windows XP-style profile folders hard-coded into the application's code, then the application could fail under Windows 7 for this reason. Another issue that can prevent an older application from running is if the application is confused by the version number of Windows 7. In other words, when you try and start the application, it checks the OS version number, finds this is 6.1, and was coded not to know what this means and therefore does not start. In such cases as these where only a few users are affected, these users can try using the Program Compatibility Troubleshooter in Windows 7 and see if this resolves the issue. If a lot of users will be affected, you can try using the Application Compatibility Toolkit to try and analyze the problem and develop a “fix” you can deploy to the affected computers.

Tools for Mitigating Application Compatibility Issues

Microsoft provides a number of tools you can use to ensure you can still use your older applications after upgrading or migrating to Windows 7. These tools are basically of three types and these are my own "friendly" names for each category:

  • One-off tools – Try using these tools first if only a few users are going to be affected.
  • Large-scale tools – Large-scale enterprise environments should consider using these tools first.
  • Virtualization tools – When all else fails, virtualize.

Let us briefly examine each category.

One-Off Tools for Running Older Applications

Let us say you are retiring your old Windows XP computers for newer ones running Windows 7. Afterwards, several users indicate they need an older program installed on their computers. You try installing the program and something like this appears (Figure 1):

Figure 1: Warning from Program Compatibility Assistant

If you see a warning like this when installing an older program on Windows 7, you can click Check For Solutions Online and see if Microsoft has previously identified this issue and has created a fix for it.

If the older program seemed to install OK on Windows 7 but problems arise when users try and run it, they can click Start, type program compatibility in the Start menu search box, and press ENTER to launch the Program Compatibility Troubleshooter (Figure 2). Doing this will cause Windows to try and find issues with installed applications, determine whether fixes are available, and apply the fixes to try and resolve the issues.

Figure 2: Running the Program Compatibility Troubleshooter

If this does not work the user can right-clicking on the executable program file in Windows Explorer, selecting Properties, selecting the Compatibilty tab, and manually trying different program compatibility modes to try and get the application to work properly (Figure 3).

Figure 3: Selecting a program compatibility mode

If none of these approaches work, see Virtualization Tools below.

Large-Scale Tools for Analyzing and Mitigating Application Compatibility Issues

If your organization has hundreds or thousands of users running dozens of different applications on their computers, you will definitely need to take a more proactive approach than the after-the-fact method described in the previous section above. In this case the tool you will want to use is the Application Compatibility Toolkit (ACT) version 5.5. ACT is a collection of tools and documentation that you can use to evaluate and mitigate application compatibility issues prior to beginning the deployment of Windows 7 in your environment. ACT helps you understand your application compatibility situation by identifying which of your existing applications are compatible with Windows 7 and which might require further testing. ACT can also help you develop compatibility fixes for problem applications which you can then deploy as application mitigation packages to affected systems. ACT is a complex tool that takes some getting used to—for more information on using ACT see Chapter 5 of the Windows 7 Resource Kit from Microsoft Press. And you can download ACT 5.5 from here.

Virtualization Tools for Running Older Applications

Whether you are a smaller shop that has found that the built-in application compatibility tools in Windows 7 are not sufficient, or a large enterprise that has discovered that application compatibility issues for certain older business-critical applications cannot be resolved using ACT, you still have several ways you can proceed in order to keep those older applications running for users who need them. Virtualization is the key here, and your choices from Microsoft are as follows:

Virtual PC 2007 SP1 – If you migrated older computers to Windows 7 you can install Virtual PC 2007 SP1 on these computers so the users of these computers can install their problematic older applications in a separate instance of Windows XP (or an older version of Windows) running in a separate virtual machine. Note that this solution has some limitations. For example, Virtual PC does not include support for USB devices. You can download Virtual PC 2007 SP1 from here.

Windows XP Mode and Windows Virtual PC - Windows Virtual PC lets you run multiple Windows environments including Windows XP Mode from your Windows 7 desktop. By installing your problematic older applications into the Windows XP Mode environment, users can run these applications directly from the Start menu. The advantages of this virtualization approach over Virtual PC 2007 SP1 are:

  • No separate virtual desktop for running the older applications—they are integrated into the Windows 7 desktop.
  • Support  for USB devices such as printers, scanners and so on.

The disadvantage of this approach is that Windows Virtual PC requires processors that support hardware virtualization (Intel-VT or AMD-V). Only desktop computers a year or so old typically support such technologies. So if you migrated older systems from Windows XP to Windows 7 you won't be able to use this method. But if you purchased brand new Windows 7 systems to replace your older Windows XP computers, you may be able to use this approach to run problematic older applications on these computers. You can download Windows XP Mode and Windows Virtual PC from here.

Microsoft Enterprise Desktop Virtualization – MED-V is an enterprise tool that can be used to deliver Virtual PC images to computers from a central repository where you can create and manage these images. MED-V thus helps reduce application-to-OS compatibility issues, but in a more scalable and managed way than simply installing Virtual PC on each user's computer. Using MED-V, you can manage the entire life cycle of virtual images, provision them to authenticated users in an Active Directory environment, monitor their usage, and more. The user remains unaware of the virtualization running in the background and sees only one desktop environment. MED-V is part of the Microsoft Desktop Optimization Pack (MDOP). For a look at how MED-V works and how you can use it, see Chapter 6 of my free ebook Understanding Microsoft Virtualization Solutions: From the Desktop to the Datacenter from Microsoft Press.

Microsoft Application Virtualization – Microsoft App-V is an enterprise tool that can be used to centralize the management of the entire application life cycle. Using App-V, administrators can dynamically deliver applications on-demand to users who need them instead of installing them on each user's computer. App-V helps reduce application-to-application conflicts, for example when a user needs to run two different versions of the same application and are unable to install both versions locally on the same machine. App-V also simplifies software update management and makes application compatibility regression testing easier. App-V is also part of MDOP. For a look at how App-V works and how you can use it, see Chapter 4 of my free ebook Understanding Microsoft Virtualization Solutions: From the Desktop to the Datacenter from Microsoft Press.

If you would like to read previous articles in this series, please go to:

Featured Links