Microsoft has published a new tool to help end users fix setup related issues such as programs that can't be installed or uninstalled. It replaces the Windows Installer Cleanup Utility (MSICUU) which had been withdrawn in June 2010. Unlike MSICUU, the new tool actually tries to fix issues with the Windows Installer registry. If that doesn't help, the tool makes some efforts to remove the application, while MSICUU only deleted the entry from Windows Installer and left all the garbage behind.
In my test, the tool successfully deleted the installed file, but left behind the empty folder in the Program Files directory. It also failed to delete the registry entry my test setup had created and the start menu shortcut to the exe.
The new tool also takes precautions like creating a restore point before it starts its work, and making backup copies of the resources it deletes. It even creates an undo script.
You can find the tool at http://support.microsoft.com/mats/program_install_and_uninstall/. For more details about how the tool works, see Aaron Stebner's blog post. Here are some screenshots from the tool:
The tool has an option to automatically fix problems, but I used the second option.
It helps with installation problems as well as uninstall issues.
The "Not Listed" option opens a dialog where you can enter the ProductCode GUID of a package you want to uninstall. For testing purposes, I created a setup where uninstallation was intentionally broken (via a LaunchCondition of Not Installed).
The summary shows that it created backups of the deleted files and registry entries. However the latter only include Windows Installer's own entries like those under HKLM:\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\INSTALLER\... and HKLM:\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\UNINSTALL\... They entry under HKLM\Software\... which I specified in the Registry table of my msi was left behind.
This is how the backup folder structure looks like: