In the earlier article on Analyzing the ACT Reports, we learnt on how we can identify the application Compatibility issues in your machine/organization. Even If you are not keen in generating an app-report, this method described in this article will help you learn how to mitigate an application using shims.
The Compatibility Administrator tool enables you to resolve many of your potential application-compatibility issues before deploying a new version of Windows in your organization. This tool enables you to create customized compatibility fixes, compatibility modes, AppHelp messages, and compatibility databases.
Process to Fix an Application – The steps involved in fixing an application using this tool is quite easy. First launch the application, test its functionality. If your enviroment is a locked-down one, then test the application as a Standard User. Identify the issues which arise. Use the Compatibility Administrator tool to create a new Shim database (.sdb), select the compatibility modes and fixes for this application. Apply this shim and test the application again. If the app works and responds fine, deploy the same on the machine.
Step 1: Install the Application Compatibility Toolkit and Start the Compatibility Administrator. You will need to run this as administrator
As mentioned earlier, This tool provides individual compatibility fixes, compatibility modes, and AppHelp messages which can help you resolve specific compatibility issues. Right click on the New Database, you will find these below options.
Step 2: In this example, we will look at how you can fix an application. So lets choose Application Fix here. In this below dialog, give the application details and the executable you would wanna fix.
Step 3: When you press the next button, you will get to see the list of the compatibility modes listed by default. If you have an issue with just the version in-compatiblity then choose the version in which the application was working earlier! You can also do a “Test Run” of the app.
Step 4: As of now, lets not choose any OS mode here. You can do it in the next window (when you have combination of shims to be choosed). As shown below, you have lots of shims to choose from. Select all the shims which would fix your application (based on the analysis you did during the Application Tests or from the Analyzed Report).
As you can see above, few of the shims do have parameters to work with. You can check the ACT Documentation to understand more on these individual shims. Check out these 2 articles, where I have written on how you can use Parameters for File and Registry Re-Direction shims (VirtualRegistry and CorrectFilePaths).
Step 5: Let me select the shims, which will resolve the issues with the application I am currently fixing. You can click on the Show Selected Button, which will list out all the shims you have selected.
Click on Finish. This will give you the complete summary of the application and the fixes applied.
The Windows installs a System Application Fix database for use with the Compatibility Administrator. This database can be updated through Windows Update, and is stored in the %WINDIR% \AppPatch directory. The custom databases which we create are automatically stored in the %WINDIR% \AppPatch\Custom directory and are installed by using the Sdbinst.exe tool provided with the Compatibility Administrator.
Step 6: Now you need to save this shim database file, and install it. You can either install it by, right click on the shim and press install button, or by using a command-line option.
Or using Command Line arguments – sdbinst.exe C:\msigeek.sdb
You also have an option to use a query tool that enables you to search for installed fixes on your local computers.
You can read these articles to understand more on how to create shims for specific scenarios.
- Implementing Registry Re-Direction – Using the VirtualRegistry Shim
- Changing File Path locations – Using CorrectFilePaths Shim
- Fixing the OS Version Number Issue.
You must keep it in mind that, shims would just pass the condition (in simple words.. just a return true). This does not ensure or simulate the platform. So only when you are sure that, the application functionality can be achieved and this condition is just a road-block.. you can use shims to mitigate these issues!