Link to more information about the Program Install and Uninstall Troubleshooting Tool

There is a new general-purpose installation troubleshooting tool called the Program Install and Uninstall Troubleshooting Tool that has been available on the Microsoft support site for a little while, and I want to post some information about this tool to help make it easier for people to find it.

This tool is conceptually similar to the .NET Framework cleanup tool, but it is more generic and can be used to clean up any MSI-based installation on a computer.  It also performs more robust back-up steps prior to cleaning up in case you need to roll back to a previous state.

Where to download the Program Install and Uninstall Troubleshooting Tool

You can find more information about the Program Install and Uninstall Troubleshooting Tool and download it from the following locations:

Summary information about the tool

The Program Install and Uninstall Troubleshooting Tool can be used to automatically diagnose problems that can prevent installing and uninstalling programs on your computer.  It can help resolve some errors that prevent programs from uninstalling, installing or updating correctly.  Here is a list of issues that this tool is currently able to fix:

  • Resolves some problems that can prevent programs from being successfully uninstalled (which can block re-installations and update installation).
  • Removes an incorrect registry key that can cause some installers to fail on 64-bit operating systems.
  • Fixes corrupted patch data in Windows Installer registry keys.

This tool is designed as a last resort for cases where install, uninstall, repair or patch installation did not succeed for unusual reasons. It is not a substitute for the standard uninstall procedure.  You should use only use this tool to uninstall a program if the program fails to uninstall using the entry in the Programs and Features control panel.

More details about how the tool works

The Program Install and Uninstall Troubleshooting Tool does the following behind the scenes when you use it to uninstall a program:

  • Creates a system restore point prior to removing program files and registry entries.  This restore point can be used to return the computer to the state prior to any action taken by the tool.

  • Makes back-up copies of all files and registry entries that it will remove to a folder under c:\MATS\<ProductCode>.

  • Backs up files in sub-folders that correspond to the system drive letters.  For example: c:\MATS\<ProductCode>\FileBackup\c\...

  • Backs up registry information in an XML file. 

  • Creates a PowerShell script that can be used to automatically restore file and registry information deleted by the tool.  The PowerShell script will be located at C:\MATS\<ProductCode>\RestoreYourFilesAndRegistry.ps1, and you can double-click on it to run it if you have PowerShell installed.

  • Stores additional information in the registry about actions that it has taken.  This information can be found at the following location:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MATS\WindowsInstaller\<ProductCode>\<DateTime>

    The most useful piece of information stored at this location in the registry is the return value received when MATS attempted to run msiexec /x to uninstall the product.

The Program Install and Uninstall Troubleshooting Tool requires Windows Installer product codes in order to know what file and registry information to remove from the computer.  For programs that are listed in the tool UI, the product code will appear as a tool tip when you mouse over the product name.  If you choose the Not Listed option in the tool UI, you can use a tool like MsiInv to determine the product code.