Using the Program Compatibility Troubleshooter
For end users that are not conversant with
compatibility and emulation issues, Windows 7 includes the Program
Compatibility Troubleshooter, which is a wizard-based tool that
steps users through the process of identifying the compatibility
problems affecting an application. When you right-click an
executable and select Troubleshoot Compatibility from the context
menu, the Program Compatibility troubleshooter appears, as shown
in Figure 4.
By prompting the user to answer a series of questions, the
troubleshooter isolates the problem and suggests compatibility
mode settings that might solve the problem.
Suppressing Compatibility Controls Using Group
Policy
In an enterprise environment, administrators often take
charge of compatibility issues themselves and do not want or need
end users modifying the Windows 7 compatibility settings. In that
case, administrators can suppress the appearance of the
compatibility controls in Windows 7 using Group Policy
settings.
In the Computer Configuration\Policies\Administrative
Templates\Windows Components\Application Compatibility folder of a
Group Policy object, as shown in Figure 5, the
following policy settings limit access to the Windows 7
compatibility controls:
-
Remove Program Compatibility
Property Page. When enabled, removes the Compatibility tab from the
Properties sheets of executables and shortcuts
-
Turn off Program
Compatibility Assistant. When enabled, disables the Program Compatibility
Assistant, preventing the computer from displaying
compatibility warnings during application installations and
start-ups
-
Turn off Application
Compatibility Engine. When enabled, prevents the computer from
looking up applications in the compatibility database,
boosting system performance but possibly affecting the
execution of legacy applications
These policy settings can effectively disable the end user’s
ability to resolve compatibility problems, so administrators must
be sure that they have already addressed all such problems in the
workstation configuration before enabling them.
Exam Tip
When studying Windows 7 configuration settings, be sure to
familiarize yourself with their Group Policy equivalents.
Using Compatibility Fixes
Although Windows 7 includes a collection of generic
compatibility modes for older Windows versions, they cannot address
all possible application compatibility problems. What’s more, many
administrators do not want to leave end users to resolve
compatibility problems or be forced to configure compatibility modes
on individual workstations.
However, some incompatible applications require a solution
that is customized for that particular piece of software. A
compatibility mode is a collection of compatibility fixes. A
compatibility fix—also called a shim—is a software
routine that rests between an application and the operating system.
For example, when a Windows XP application makes a function call to
the operating system—that is, when it asks the operating system to
provide a service, such as access to the file system—the
compatibility fix translates the call, making it appear to the
application that it is running on a Windows XP system.
To locate known compatibility fixes for specific
applications or create new ones, you use the Microsoft Application
Compatibility Toolkit, as discussed later in this lesson. The ACT is
a collection of tools that enables administrators to take full
control of workstation compatibility issues.
Using Remote Desktop Services
When you deploy an application to a Windows 7 computer using
RDS, the application is not really running on Windows 7; it is
running on the RDS server. Therefore, if the application has a
compatibility issue with Windows 7, but it runs properly on the
server operating system, you can avoid the problem by deploying the
application with RDS.
Using RDS can also prevent you from having to configure a
compatibility mode or install a compatibility fix on all of your
workstations. You can patch the application after it’s on the
server, and all of the RDS client sessions will run the patched
version.
Virtualizing Applications
Virtualizing applications using Microsoft Application
Virtualization (App-V) also can eliminate compatibility problems.
Because App-V isolates each application in its own sandbox, there is
no way that applications can conflict with each other.
Virtualization even makes it possible to run two different versions
of the same application, something you typically cannot do in a
standard environment.
One of the longstanding problems with RDS (and Terminal
Services before it) occurs when a network has workstations running
different versions of Windows, and therefore needs to provide
clients with different versions of an application. A single RDS
server cannot, in most cases, have two versions of the same
application installed at the same time, so it has always been that
the only way to serve two versions of the application to clients was
to run them on separate RDS servers. Now, however, App-V can run the
two versions on the same server in virtualized sandboxes, enabling
RDS to serve the application to all of the clients.
The ultimate solution for a Windows XP application that
absolutely will not run on Windows 7 is to use Windows XP Mode, a
Windows 7 feature that creates a virtual Windows XP system on a
workstation. Because the application is running in a true Windows XP
environment, not in an emulation, there can be no incompatibilities
with Windows 7.
Windows XP is essentially a virtual machine running in the
Microsoft Virtual PC environment. You must download and install
Virtual PC, as well as the Windows XP Mode files, available at
http://www.microsoft.com/windows/virtual-pc/download.aspx.
Because it is a virtual machine implementation, Windows XP Mode
requires a processor and BIOS that support hardware virtualization,
as well as additional memory. The workstation is also likely to
experience some performance degradation as a result of the
additional overhead. You should consider Windows XP Mode to be a
last resort and use it for applications you can’t run any other
way.