Sunday, May 03, 2015

Quickpost: MSICUU2, Program Install and Uninstall Troubleshooting Tool, & C:\MATS

So the other day we were trying to remove some Microsoft software that had been installed on a Win 7 system but was no longer listed under the “Programs and Features” list.

In the past we would have reached for the Windows Installer CleanUp Utility (MSICUU2.exe).

Only we discovered that it is no longer supported.

Instead Microsoft now offers a replacement FixIt solution for these situations under KB290301.

What happened to the Windows Installer Cleanup Utility (MSICUU2.exe)? - Microsoft Support

We ran it. Unfortunately it didn’t help our particular issue. Also we noticed the presence of a C:\MATS folder with a bunch of stuff related to the app we were trying to install that had not been present before running the tool. Curious.

A bit more searching found this wonderful article that also details the Program Install and Uninstall Troubleshooting Tool.

Link to more information about the Program Install and Uninstall Troubleshooting Tool - Aaron Stebner's WebLog

Aaron details two locations you can get this tool from:

Quoting from Aaron Stebner’s post, below we find his explanation of the C:\MATS folder creation and contents:

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.

That last paragraph is very important. You will need to know/provide the Windows Installer product code during use of the utility. If you don’t know it already (say from a working system/application install) then you will need to find it.

These additional posts by Aaron are also great supplemental references.

Yes, there are lots of other third-party applications for installation/removal of applications. However, in this case we were dealing specifically with a MSI-based installer for a Microsoft product line and really wanted to avoid use of any third-party non-Microsoft utilities in case this turned out to be a process we needed to use enterprise wide.

Note: Yes, you can find the Windows Installer CleanUp Utility (MSICUU2) archived at some third-party download locations. However, use on your systems at your own risk: Download Windows Installer CleanUp Utility - MajorGeeks.

Likewise, if you are just dealing with one of the Microsoft Office Suites, these guides may also be useful as they contain a number of different methods to remove the suite from a system:

Cheers,

Claus Valca

No comments: