As some of you may be aware, Windows' "C:\Windows\Installer" folder tends to grow increasingly larger as time passes and more updates get applied to programs which rely on Windows Installer — especially if you've had the same version of Microsoft Office for a few years and let Windows Update do its thing automatically.
There are various solutions to this problem such as:
- reinstalling the system from scratch: huh, overkill much?
- completely uninstalling the big programs/software suites that had multiple updates in the past, and reinstalling them (if still needed) with only the latest, current patches: while less overkill than a complete system reinstall, it's still not a very practical solution
- moving the folder to a different drive and making a hard link to it: may not always be feasible, especially if you have a laptop with no room to add another internal storage drive… also, while that's kind of clever, it's only a workaround that doesn't really address the main problem
- using a dedicated cleaning tool such as PatchCleaner: IMHO, that appears to be the best option
However, some people may have trust issues with PatchCleaner because it is closed source.
So, since I was curious about how that worked, I tried to figure out how to identify superseded patches and started to script my own, open source (it's a .bat file, not compiled or obfuscated) solution that should give similar results — albeit with a much less sexy interface and less options, but the more suspicious people can actually inspect the code!
A few words of caution, though:
- I've only tested it on very few (less than 5) computers so far, all running the same version of Windows (7)
- while I've not noticed any issue after using my script to "clean up" those (again very few) computers I did test it on, and had no problem applying the august 2019 security updates for MS Office 2010/2013 on them, I cannot tell for sure if there won't be issues later on
- I'm not even a programmer, which I guess increases the probability for this script to not be extremely reliable ^^'
This is why I need testers, preferably technically inclined ones for now, so that
when my script does cause issues, they're more likely to be able to clearly explain it and maybe even solve it by themselves.
I've included a warning message on a red background when you start the script as an attempt to make people think twice about running experimental stuff that hasn't been tested much yet
With that being said, the script is in the attachment.
Feel free to reply with any constructive criticism!