Windows Installer Directory
When applications are installed and updated on the Windows Operating System a hidden directory "c:\Windows\Installer" is used to store the installer (.msi) files and the patch (.msp) files.
Generally these files are important as during updating, patching or uninstalling software it will use the .msi/.msp files. If you blanketly delete all the files in this folder, you will find yourself needing to rebuild windows.
Over time as your computer is patched and patched again, these installer files become outdated and orphaned. They are no longer required, but they can take up many gigabytes of data.
PatchCleaner
PatchCleaner identifies these redundant/orphaned files and allows you to either:
- (Recommended) Move them to another location. If you want to play it safe, just move them to another location, and you can always copy them back.
- Delete them.
How it works
HomeDev has had many queries about how PatchCleaner works and if it can be trusted to do the right thing.
Its pretty simple. The windows operating system holds a list of current installers and patches, that can be accessed via WMI calls, (Windows Management Instrumentation ).
PatchCleaner obtains this list of the known msi/msp files and compares that against all the msi/msp files that are found in the "c:\Windows\Installer" directory. Anything that is in the folder but not on the windows provided list is considered an orphaned file and is tagged to be moved or deleted.
HomeDev cannot warrant that PatchCleaner will not find a false positive and delete a required patch which is why we have added the filter feature to filter and recommend using the move function, that way you can always copy the patches back if required. Please see the Known Issues List at the bottom of the page
CLI - Command Line Interface
As of verison 1.3, patch cleaner implements a CLI, (Command Line Interface).
The application can now be run from the command line with the following switches:
/d - This will execute with the delete action.
/m - This will execute the move action with the default location as stored in your local app configuration.
/m [FilePath] - This will execute the move action, where [FilePath] is the location you wish to move the files to.
The process will write the output to the console window and also logs the messages to the windows event log.
Malware
After 200,000+ downloads, I have had some feedback that a few users are having problems where PatchCleaner is being detected as Malware.
Firstly let me reassure you that there is no Malware contained within PatchCleaner.
To stop PatchCleaner from being detected as malware would require purchase of an SSL certificate and digitally signing the software.
Given this is 100% free software I cannot justify the expense in doing this, so I do apologise for any extra clicks you may have to do to install PatchCleaner but I don't think this will change any time soon.
If you don't believe me, then how about trusting Softpedia where we have been given a 100% clean rating.
Check out the review here as well..
Known Issues
- Adobe Reader patches are detected incorrectly as orphaned files. As of verson 1.4, PatchCleaner now has an exclusion filter that allows you to filter out the Adobe Acrobat patch files so they can be excluded from the set of orphaned files. The exclusion filters are configurable
Requirements
- Windows 7 / 8 or 10, x64 or x86 (not compatible with windows XP)
- .Net framework 4.5.2
- Also, runs on Windows Server, Confirmed on Server 2008 R2 x64 and Server 2012 R2 64
Support
Installation Issues
Some people have encountered some installaton challenges when attempting to install. If you hit problems then I suggest you try the following.
The installer that you download from the website is a self extracting 7z archive created as per my blog post (http://ntsblog.homedev.com.au/index.php/2015/05/14/self-extracting-archive-runs-setup-exe-7zip-sfx-switch/).
So you can actually open the .exe file with 7Zip and extract the files (setup.exe and PatchCleaner.msi).
I would then try running the PatchCleaner.msi file directly.
License
Yes the product is 100% free, but if you feel inclined please support via a donation either through the $ heart icon in the app or this link below
Fig. 1
Searching for you orphaned files
Fig. 2
Getting the details of the orphaned files
Fig. 3
Lets reclaim some disk space
Fig. 4
Details of the product to retain
Fig. 5
Details of the orphaned files
Version 1.4.2.0
Released 3/3/2016
Version 1.4.2.0 of PatchCleaner is another point release that implements the following fixes:
- Fix for object not found crash in UI.
- Fix for crash on Cannot convert Null to System.DateTime
- Error handling for vbScript not configured on PC.
- Fix for duplicate patch files appearing
- UI enhancement for missing files.
Thats all the bugs fixed now.
Version 1.4.1.0
Released 2/16/2016
Version 1.4.1.0 of PatchCleaner is a hotfix release due to a crash that was occuring on Windows 7 machines
The hotfix also implements the following fixes:
- Fix for Shell32 program crash
- Improved error handling after all the previous crashes.
- Improved product crash handling
- Improved file access performance
- Deep scan mode for improved performance but reduced functionality.
- Move to .Net Framework 4.5.2
- Fixes for issues on Non-English versions of windows.
- Missing msi/msp file notification
Version 1.4.0.0
Released 2/10/2016
Version 1.4.0.0 of PatchCleaner implements new functionality, including:
File Details
PatchCleaner now provides the details of:
- The files that are still in use and need to be retained
- The orphaned files including those files that are excluded via the exclusion filters
Exclusion filters
There is a known issue in previous versions where PatchCleaner falsely identifies Adobe Acrobat Reader patches as not being required. Adobe do something proprietary when it comes to their automatic updating such that if PatchCleaner removes the "orphaned" patches from the installer directory, Adobe Reader automatic updates will no longer successfully install.
The exclusion filters feature allows you to add keywords that are used in "contains" filters to exclude patches that match these keywords. These "contains" checks are applied against the file title, subject, author and digital signature.
PatchCleaner is now pre-configured to exclude "Acrobat" which will exclude any Adobe Reader files from the set of orphaned files.
These exclusion filters are able to altered by you.
Bug Fixes
- Issue with the "version" checking where version 1.3.0.0 always displayed that version 1.3.0.0 was available for download.
Adobe Reader
If you are concerned that PatchCleaner has detected your AdobeReader patches as orphaned, you could apply the following steps to recover them. (Note: This assumes you have used the move feature and have access to the full list of patches that have been marked as orphaned.)
- Install PatchCleaner 1.4.0.0
- Run patch cleaner
- Move your orphaned files to your "Move" folder. Patch cleaner should now say you have "0" orphaned files.
- Copy your patches from your "Move" location back to "c:\windows\installer"
- Run PatchCleaner (or click refresh if you left it running)
- Use the delete action.
Any Adobe Reader patches that were copied back to "c:\windows\installer" as part of step 4, will have been excluded from the set of orphaned files and will remain in the installer folder.
Version 1.3.0.0
Released 11/14/2015
Version 1.3.0.0 of patch cleaner implements a CLI, (Command Line Interface).
The application can now be run from the command line with the following switches:
/d - This will execute with the delete action.
/m - This will execute the move action with the default location as stored in your local app configuration.
/m [FilePath] - This will execute the move action, where [FilePath] is the location you wish to move the files to.
The process will write the output to the console window and also logs the messages to the windows event log.
Bug Fixes
- There was code to ensure that the application had write access to the "Move" location. This seemed to cause security issues if your move location was the root of your drive. This functionality has been removed and the application will just log an error if it does not have write permission to the target "Move" location.
Version 1.2.0.0
Released 6/16/2015
This version contains some minor fixes, including:
- Fix to save the move folder location between sessions. Previously PatchCleaner would not retain you chosen move location.
- Performance improvements, by removal of redundant code.
Note: There have been no functional changes to the code
Since version 1.1.1.0, HomeDev has performed further testing, which involved testing with the latest round of windows updates.
All windows update patches installed with no issues being encountered.
Running patch cleaner after running a large set of windows updates recovered another 1GB of free space.
Version 1.1.0.0
Released 6/9/2015
Hotfix for issue that was identifying false positives.
There was a bug that was falsely identifying a small number of patches as orphaned when in fact they were not. For example on a test computer it found 42 files worth 300MB of actual patch files that should have been retained.
If you used the move function the recovery process is:
- copy the files back into the c:\windows\Installer directory; and
- re-run the PatchCleaner v1.1.0.0 to correctly identify orphaned patches.
If you deleted... Sorry :-(
I ran this for over a month with out any issues before releasing the first version of the product. It was only today that I had my first issue.
I appologise if this has caused any problems.
Version 1.0.1.0
Released 6/2/2015
Fixes issue with move action crashing.
Added better error capturing around the move logic.
If you have crashes when attempting the move action it will be related to file system permissions. Try choosing a destination location that you have full control over.
Version 1.0.0.0
Released 5/23/2015
First version of PatchCleaner.
Yes.
There is a new sourceforge project where the portable version can be downloaded.
Yes, we created a command line version of the PatchCleaner in version 1.3.0
Between version 1.3 and 1.4 there were changes made to the way PatchCleaner works.
It appears that a direct upgrade leaves some files from the pervious version behind and when the new version starts it fails to start throwing an error like:
FATAL PatchCleaner.App: An Unhandled Execption has occured System.IndexOutOfRangeException: Index was outside the bounds of the array.
The solution to fix this is to do the following:
- Uninstall PatchCleaner
- Delete the folder and all its contents
- 32 Bit computer - C:\Program Files\HomeDev\PatchCleaner
- 64 bit computer - C:\Program Files (x86)\HomeDev\PatchCleaner
- Re-install PatchCleaner it should be fixed
On some computers the following error message may be recieved;
Unrecoverable error, PatchCleaner uses vbScript and it appears that vbScript is not working on your computer. "Can't find script engine "VBScript". You will need to resolve this issue before running PatchCleaner
As the error suggests patch cleaner uses vbScript. It is used as the base technology for asking your computer what software and patches are required by your computer, as this is the fastest way to make the required "WMI" calls. Without a working version of vbScript on your computer PatchCleaner cannot work.
If you receive this error, it is because vbScript is broken on your computer.
This can be for various reasons, and google will be your friend to help resolve this.
https://www.google.com/search?num=20&newwindow=1&espv=2&q=can%27t+find+script+engine+vbScript
Below is a link that people have used to help resolve the issue with vbScript on their computer:
http://techlogon.com/2012/11/26/how-to-fix-the-error-cant-find-script-engine-vbscript-for-script/
Until you get vbScript working on your computer you will not be able to run patch cleaner.
To easlily test create a file called "test.vbs", open it in notpad and enter this code:
Wscript.Echo "Yeah, vbScript is working"
Save it and double click, if you get a message box showing the above text then you have fixed your vbScript issue
I have had some feedback that a few users are having problems where PatchCleaner is being detected as Malware.
Firstly let me reassure you that there is no Malware contained within PatchCleaner. To tell you the truth I am not smart enough to add malware to my product nor do I have the time or inclination to be bothered to do something like that. The only thing that PatchCleaner does is check back to base to determine if a new version of the product has been released, and uses that to display a download link.
To stop PatchCleaner from being detected as malware would require purchase of an SSL certificate and digitally signing the software.
Given this is 100% free software I cannot justify the expense in doing this, so I do apologise for any extra clicks you may have to do to install PatchCleaner but I have no plans to change this.
Hundreds of thousands of happy "customers" can't be wrong, so just give it a go.
As of October 2017 - softpedia has given PatchCleaner a 100% bill of health as verified as 100% clean.
Read about their review on Softpedia
Some people have encountered installaton challenges when attempting to install/uninstall PatchCleaner.
The installer that you download from the website is a self extracting 7zip archive created as per my blog post (http://ntsblog.homedev.com.au/index.php/2015/05/14/self-extracting-archive-runs-setup-exe-7zip-sfx-switch/). The idea behind this is to package both a Bootstrap setup.exe, along with the actual .msi.
If you run into problems installing, (or in some cases uninstalling and cannot find the .msi file), you can actually open the .exe file with 7Zip and extract the files.
Download and install a copy of 7Zip from 7Zip.org and right-click on the PatchCleaner.exe and choose extract here.
You will get 2 files, a setup.exe and a PatchCleaner.msi. The setup.exe is what is called a bootstrapper and it attempts to ensure that the pre-requisites are meet. The .msi is the installer itself.
Try running the PatchCleaner.msi file directly.