Currently there are many Twitter posts suggesting the Windows Installer Clean Up Utility. This concerns me and I want to clarify some things about it.
I think these tweets might have been triggered by a blog article that Karl L. Gechlik posted recently: Clean up your PC with Windows Installer Clean Up Utility
The Windows Installer CleanUp Utility (MSICU) is a last resort to work around problems with broken or partially installed Windows Installer (MSI) packages if the regular measures like uninstalling from Add/Remove Programs control panel have failed. However it is not intended for routine maintenance of your computer.
When you install a program with a setup that is based on Windows Installer technology, information about that program is registered in the Windows Installer database. If this information or the setup program itself gets corrupted you may not be able to uninstall or re-install this program, and you might even be unable to install other programs. MSICU can delete such corrupted information in the Windows Installer database.
The first caveat is that it can also remove this information for setup packages that are not corrupted. If you delete such information you will no longer be able to uninstall or maintain the respective program. Using MSICU you can severely damage your system configuration. If it ain’t broke, don’t fix it!
There’s also a misconception about MSICU and this is reflected in the following statement in Karl Gechlik’s blog:
It runs through the registry using command line options to search and remove registry items associated with your application and then it grabs and deletes shared dll’s and other files.
This is not quite correct. MSICU only removes information from the Windows Installer database. It does not remove registry items like COM registration, nor does it delete any program files (including shared DLLs).
If you look carefully at the lines I highlighted in the above screenshot (which I borrowed from Karl’s blog) you’ll notice that they say:
Removed shared DLL entry: …
Windows keeps a reference count for DLL files that are shared between multiple applications in the registry. This count is used to determine when no application needs the file anymore so that it can savely be deleted. MSICU decrements this counter, but it doesn’t delete the file itself.
The documentation on the MSICU download page also makes this clear:
Be aware that Windows Installer CleanUp Utility will not remove the actual program from your computer. However, it will remove the installation files so that you can start the installation, upgrade, or uninstall over.
So the second caveat: MSICU will not delete files (except the cached .msi file), it will not regain “wasted” disk space, it will not clean your registry, it will not make your computer faster. Quite the opposite: it will leave all installed files on your hard disk as orphans.
To summarize: MSCU is a useful tool if you face a problem with a corrupted Windows Installer package, but most Windows users should never need to use it.