A modern, open-source replacement for PatchCleaner. Safely clean up C:\Windows\Installer, the hidden Windows folder that quietly eats your disk space.
- What: Finds and removes unneeded files from
C:\Windows\Installer, the hidden folder Windows never cleans up. - How much space: Depends on your software. On my machine it was just shy of 1 GB. People have reported 20-50 GB; with Adobe Acrobat it can pass 100 GB. It could be nothing at all. The point is that it's quick and costs nothing; whatever can be removed will be gone.
- Is it safe: Yes. Only removes files Windows itself says it no longer needs. Delete sends to the Recycle Bin. Move lets you keep them somewhere safe.
- Get it: Download the latest release, run it, done.
There's a hidden folder on every Windows PC called C:\Windows\Installer. Every time you install software that uses the Windows Installer system, or apply a patch to Microsoft Office, Adobe Acrobat, Visual Studio or any other .msi-based application, a copy of that installer or .msp patch file goes into this folder. And stays there.
When you uninstall the software, the files stay. When a newer patch replaces an older one, both stay. Windows never cleans them up. Disk Cleanup doesn't touch them. DISM is for a different folder entirely. Over the years, the folder grows: 10 GB, 30 GB, 50 GB. On machines with heavy MSI-using software (Acrobat is a frequent culprit), it can pass 100 GB.
These aren't temp files that get recreated the moment you close a cleaning tool. They're genuine dead weight: old installers from software you uninstalled years ago and patches that have been replaced three times over. Once they're gone, they don't come back.
If you're looking for an easy way to free up disk space on Windows, this folder is one of the best places to start. InstallerClean finds the unneeded files and removes them safely.
PatchCleaner has been the go-to tool for this, but it hasn't been updated since March 2016 and it's closed source. InstallerClean is an open-source alternative, with superseded-patch detection (which catches the Acrobat patches PatchCleaner excludes) and a modern UI.
If you've ever searched for help with this folder, you know how it goes. Someone asks how to clean it. They're told to run Disk Cleanup. They try it. It frees up 600 MB of a 180 GB folder. The thread goes quiet.
"All of the threads I've found tend to recommend the same things which don't solve the problem, and then go dead."
ksparks519, r/Windows10
Or they're told not to touch it at all. In one thread, someone with a 60 GB Installer folder was told to "don't mess with it." When they asked what they should do instead, the reply was: "I just told you."
The standard advice confuses deleting files at random (which genuinely is dangerous) with removing files that Windows itself says it no longer needs (which isn't). InstallerClean does the latter.
If you've searched for help with this before, you've probably already found PatchCleaner by John Crawford. It's a fantastic app. I downloaded it and it did exactly what it said: freed up a ton of space. The one thing it doesn't handle is Adobe patches; it excludes them by default, and on machines where Adobe is the biggest offender, a lot of removable files get left behind:
"I've downloaded Patchcleaner to delete the orphaned .msp files... 29 GB of the files are 'excluded by filters', so Patchcleaner doesn't seem to help."
HeatherBunny1111, r/techsupport
InstallerClean detects which patches have been superseded by newer updates and flags them as removable, including the Acrobat patches PatchCleaner excludes.
- Scans
C:\Windows\Installerfor.msiand.mspfiles - Queries the Windows Installer API to find which files are still registered
- Shows what's needed and what's not, with sizes
- Removes the unneeded files: delete to the Recycle Bin, or move to a folder you choose
No telemetry. No network activity. The About window has a Check for updates link that opens the releases page in your browser.
Click to expand

Initial scan. This is very quick.

Results: how much is in use, how much is removable.

The files still in use, with metadata read from the installer database.

Confirmation before either action. Delete sends to the Recycle Bin; Move puts the files somewhere of your choice.
InstallerClean identifies two kinds of unneeded files.
Orphaned files are installers and patches left behind after you uninstall software. Windows no longer references them, but the files sit in the folder taking up space.
Superseded patches are old .msp patches that have been replaced by newer ones. Windows marks them as superseded in its own database but never deletes them. Vendors that ship frequent patches (Acrobat, Office, large dev tools) accumulate superseded ones indefinitely.
To find them, InstallerClean calls the Windows Installer COM interface directly via P/Invoke:
MsiEnumProductsExto enumerate every installed productMsiEnumPatchesExto find all registered patches for each productMsiGetPatchInfoExto read patch state (applied, superseded or obsoleted)
Any .msi or .msp file in C:\Windows\Installer that isn't claimed by a registered product is orphaned. Any patch marked as superseded and not required for uninstall is flagged as removable.
If the API returns incomplete data (rare, but it can happen with corrupted installer state), the app falls back to reading the registry. The fallback only adds files to the "still needed" set, never to the "removable" set.
After a Move or Delete completes, empty subfolders inside C:\Windows\Installer (the directories the cache leaves behind once their contents are gone) are pruned in the same pass. Reparse points are skipped during the prune so a junction planted inside the cache cannot redirect the cleanup outside it.
Yes. InstallerClean queries the same database Windows itself uses to track what's installed. If Windows says a file is no longer needed, the app trusts it; it doesn't guess based on filenames or dates.
In the app. Delete sends files to the Recycle Bin. Move puts them in a folder you choose. Either way the files can be restored if anything breaks. Nothing is touched until you confirm. If Windows Installer is currently writing to the cache, has a previous transaction suspended, or has a queued post-reboot rename targeting the cache, Move and Delete are disabled and the specific reason is shown. The core logic is covered by 200+ automated tests that run on every commit (see the CI badge above).
Verifying the binary. InstallerClean is unsigned. Code-signing certificates cost money annually and I'd rather keep the project free, open and donations-funded.
- SHA-256 hashes for each release are listed on the releases page.
- VirusTotal links for setup, portable and slim builds are published with each release.
- Source is at github.com/no-faff/InstallerClean and CI builds and tests every commit (see the green CI badge above).
- Softpedia tests each release for viruses, spyware and adware.
- MajorGeeks tests each submission in a virtual machine and lists it only if it passes their review.
Setup and portable builds score clean across every engine on VirusTotal. The slim build has two flags from the same generic ML classifier shared between Avast and AVG; false-positive reports have been filed with both vendors. (For comparison, PatchCleaner with 890,000+ downloads since 2015 also has two flags on VirusTotal.)
- WinSxS (
C:\Windows\WinSxS) is a different folder with different rules. For that one, use Windows's built-in Disk Cleanup orDism /Online /Cleanup-Image /StartComponentCleanup. - No background service, no scheduled task, no auto-clean. The app runs when you launch it.
- The registry is read-only. The app queries the Windows Installer database; it doesn't change it.
- No telemetry, no usage reporting, no version-check ping. The "Check for updates" link in About opens the GitHub releases page in your browser.
- No bundled extras. No toolbars, no third-party offers, no nag screens.
- The only permission asked for beyond launching is Administrator, which is required because
C:\Windows\Installeris admin-only.
Will I actually free up GBs of space? Depends on your machine. A clean Windows 11 install with no extra software has nothing to remove. A long-running developer workstation, or any machine with heavy MSI-based software (Acrobat, Office, LibreOffice, large dev tools), can have tens of GB. Run installerclean-cli /s to see exactly what would be removed before you commit.
Why does it want Administrator? C:\Windows\Installer is owned by SYSTEM and locked down to admins only. Reading the folder, writing to the Installer-database query API, and moving or deleting files all require elevation. There's no user-mode path.
Can I undo a Delete? Yes. Delete sends files to the Recycle Bin. Restore them from there. If you emptied the Recycle Bin, the files are gone, but you can instead use Move to put them in a folder you choose, then verify nothing breaks before deleting from there.
Will Windows complain if I remove these files? No. InstallerClean only removes files Windows itself reports as no-longer-needed via its own installer-database API. The next install / uninstall / patch cycle proceeds normally.
Why no Win32_Product (WMI)? Win32_Product triggers MSI repair operations on every product during enumeration, which can take minutes and load the disk hard. InstallerClean calls the Windows Installer COM API directly with no side effects.
Does it work on Windows 7 or 8? Untested and not supported. Targets Windows 10 and 11.
Is it suitable for RMM / mass deployment? Yes. The CLI exits with three-state codes (0 / 2 / 1 = full success / partial / failure; 130 for Ctrl+C), writes a per-run summary to the Application event log, and respects the same single-instance mutex as the GUI. See the Command line section.
Three builds, choose one:
- Setup (
InstallerClean-setup.exe): regular Windows installer, bundles the .NET 10 runtime. Best for most users. - Portable (
InstallerClean-portable.exe): single self-contained exe, no install. Bundles the runtime. Run, use, delete. - Slim (
InstallerClean-slim.exe): smallest download. Requires the .NET 10 Desktop Runtime to be installed already (which you have if you have an up-to-date Visual Studio).
Download from the releases page, then run. Windows SmartScreen will say "Unknown publisher". Click More info then Run anyway. This is normal for unsigned open-source software.
The app scans automatically on startup. Review the results, then click Delete or Move.
Or install via Scoop:
scoop bucket add no-faff https://github.com/no-faff/scoop-bucket
scoop install installerclean
| InstallerClean | PatchCleaner | |
|---|---|---|
| Last updated | 2026 (active) | 3 March 2016 |
| Source code | Open source (MIT) | Closed source |
| Runtime | .NET 10 (self-contained) | .NET + VBScript |
| API | Windows Installer COM (direct) | WMI (Win32_Product) |
| Superseded patch detection | Yes | No |
| Adobe handling | Detects superseded patches | Excludes by default |
| UI | Dark theme (WPF) | Windows Forms |
| Data collection | None | None |
A note on WMI: PatchCleaner uses
Win32_Product, which is known to trigger MSI repair operations during enumeration. InstallerClean calls the Windows Installer COM interface directly with no side effects.
Ultra Virus Killer (UVK) also offers Installer cleanup as part of its System Booster module, but it's a paid tool ($15-25) and the cleanup is one small feature inside a much larger application. InstallerClean is free, focused and open source.
InstallerClean supports headless operation for scripting and sysadmin use:
Usage:
installerclean-cli Print this usage and exit
installerclean-cli /s Scan only - list removable files
installerclean-cli /d Delete removable files (Recycle Bin)
installerclean-cli /m Move to saved default location
installerclean-cli /m PATH Move to specified path
Also accepts --help, /? and -h. To launch the GUI, run InstallerClean.exe (or use the Start-menu shortcut from the setup install).
/s is a dry run: it scans, lists what it would remove with filenames and sizes, then exits. Useful for auditing before cleanup. Exit code is always 0. All files are in C:\Windows\Installer.
/d and /m scan and then act. /d sends removable files to the Recycle Bin. /m moves them to a folder (either one you specify on the command line, or the default saved from the GUI). Exit code is 0 on success, 1 if any files failed.
All three require an elevated (administrator) command prompt.
InstallerClean.exe is the WPF GUI; it does not respond to command-line arguments. installerclean-cli.exe is a separate console executable that ships in the same install directory and exposes the same scan / move / delete operations to PowerShell, cmd and scheduled tasks. Because it is a real console process, it blocks the prompt until it finishes; redirect or pipe its output as you would any other console exe.
Portable and slim downloads bundle only the GUI exe. To run the CLI operations from those, install via the setup or install the CLI separately.
- Windows 10 or 11
- Administrator privileges (
C:\Windows\Installeris admin-only)
See Download for setup, portable and slim build options.
git clone https://github.com/no-faff/InstallerClean.git
cd InstallerClean
dotnet build src/InstallerClean/InstallerClean.csproj
Run the tests:
dotnet test src/InstallerClean.Tests/
Found a bug or have a suggestion? Open an issue or start a discussion. Pull requests welcome. Please run dotnet test before submitting.
If InstallerClean helped, consider supporting No Faff or leaving a star on GitHub.



