If you want to use an application that does not work on newer operating systems, it’s possible to trick the application to think that it is being started on an older operating system.
This trick is called a SHIM/FIX and can be created using the Microsoft Application Compatibility Toolkit.
The SHIM/FIX needs to be applied on the local system so when using Application Virtualization, like App-V, it’s required that the SHIM/FIX is applied before the application is started.
In this blog post I am going to create a virtual application with a SHIM/FIX to trick the application to think that it runs on Windows XP. The application I am going to virtualize is AIDA32 – Personal System Information 3.93 because this can display the system information and I can test if the SHIM/FIX works. AIDA can be downloaded here.
Step 1 – Creating a SHIM / Compatibility Fix
Download the Microsoft Application Compatibility Toolkit (ACT) here | |
Copy the ApplicationCompatibilityToolkitSetup.msi to your computer. | |
Start the installation of the Microsoft Application Compatibility Toolkit.
Click Next |
![]() |
Click I accept the terms in the License Agreement Click Next |
![]() |
Click Next | ![]() |
Click Install | ![]() |
![]() |
|
Click Finish | ![]() |
Extract aida32pe_393.zip and start the application | |
AIDA32 displays the system information In this case the information of the local system without a shim. (Windows 7 Enterprise Professional) Close the application |
![]() |
Start the Compatibility Administrator | ![]() |
Click on Fix | ![]() |
Fill in the name of the application, the Vendor and the Program file location.
The file location isn’t important because later it’s changed on the client to the App-V 5 location of the cache. Click Next |
![]() |
Select the operating system where the application can be started successfully.
For this application, I select Windows XP. It’s possible to test the fix by clicking Test Run Click Next |
![]() |
These are advanced options, I am not going to use them right now.
Click Next |
![]() |
These are advanced options, I am not going to use them right now.
Click Finish |
![]() |
Click Rename | ![]() |
Enter the name of the application | ![]() |
Click Save | ![]() |
Enter the name of the application | ![]() |
You can apply the SHIM/FIX using the command:
sdbinst.exe –q *file* .sdb |
![]() |
Start AIDA32.exe to test the SHIM/FIX | ![]() |
The SHIM/FIX works because the Operating System found by AIDA is Windows XP and the application is started on Windows 7. | ![]() |
Step 2 – Creating an App-V 5 package and integrate the SHIM
The next step is to create a virtual application and integrate the SHIM/FIX into the package.
Step 3 – Modify the App-V 5 DeploymentConfig.XML
Now that the SHIM/FIX is integrated into the virtual package, it’s possible to modify the DeploymentConfig.XML file so the SHIM/FIX is applied when the virtual application is started/streamed to the client.
Open the DeploymentConfig.XML file using Notepad | |
Modify the file so the User Scripts are enabled and the following command line is added. This can be added to the Start Virtual Environment part of the XML file.
<Path>C:\Windows\System32\cmd.exe</Path> |
![]() |
As always editing the App-V 5 XML file, you can use ACE to prevent errors. | ![]() |
Step 4 – Test the virtual application and the SHIM/FIX
You can test the virtual application using two ways;
1) Import the application into the App-V 5 Management Console, or
2) Import the application on the client using PowerShell
I prefer option 2 before option 1.
Additional information:
When a SHIM/FIX is applied to the system, it is placed in the folder: C:\Windows\AppPatch\Custom
The SHIM/FIX is saved here as the GUID name.
You can remove a SHIM/FIX from a system by using the command sdbinst.exe –u *path and filename*
Comments are closed