When I use MS uninstall for an app deletion, such as, Mozilla
Firefox I run a search scan only to find a plethora of remaining
folders, and registry keys. What does uninstall really uninstall? And
how do I safely purge the remaining clutter?
What we have here in front of us is a can of worms.
Uninstallers do uninstall most things, but not everything. Sometimes
they could uninstall more, sometimes they should uninstall
more, but sometimes you don’t want them to uninstall more, and
sometimes they can’t uninstall more.
Confused yet? Well, that’s how the uninstaller would feel, if it had
On the surface, it seems very simple – an uninstall should remove all files, folders and registry settings that are associated with the program that’s being uninstalled.
On the surface.
Let’s look at why that’s so rarely true.
If you’re like me, you probably spend some time customizing the applications you use to your taste. Those settings are likely kept in the registry.
Many applications will leave those customizations in the registry when they are uninstalled, just in case you might re-install the application at some time in the future. After that reinstall you might find all your settings remembered. Yes, an uninstaller could ask, but most do not since it’s more work for what most would consider an edge case.
Quite often also, additional registry entries are created as the program is being used, sometimes not even by the program itself. Unless a program takes special care to keep track of absolutely everything it’s created there’s no way for the uninstaller to know with certainty everything that should be removed.
So, yes, it’s very common that stuff gets left in the registry.
Now the purest might say that the additional work of keeping track, or the additional analysis at uninstall time is worth it, and that all “leftovers” should be removed.
And the purist might well be right.
In fact, the entire genre of registry cleaner applications attempts to fill in this gap. The problem, of course, is that particularly when the application itself can’t keep track of what needs to be removed it’s nearly impossible to expect a third party application to be able to.
In a very practical sense leaving orphaned entries in the registry doesn’t really impact performance that much until or unless it becomes truly overwhelming. And for the vast majority of users that time never actually arrives.
And that’s a practical reality that’s allowed, and even encouraged, uninstall programs to be careless or sloppy when it comes to the registry.
Most applications include files that can be shared with other applications. For example, Firefox might share some common files with Thunderbird, both Mozilla products. (Not saying that they specifically do, just theorizing an example.)
When you install the first application all required files are installed. When you install the second, those shared files are already there, and may, or may not, be installed or updated.
Uninstall one of the applications. Naturally it cannot uninstall the shared files, or it’ll break the other application.
Now, uninstall the second application. What should happen? Ideally it would somehow “know” that the shared files are no longer in use by anyone else and remove them. In reality this is typically a much more complex problem and as a result many uninstallers take the safer approach of leaving behind any files that still might be shared by other programs.
The result is that you might find files and folders on your machine that are no longer in use, simply because the uninstaller chose not to take the risk of removing them, in case some other program was using it. Whether it could have, or should have, or even been able to tell will vary, of course, from scenario to scenario.
Files In Use
It’s not uncommon for an application you’ve installed to have components that are actually running at the time you uninstall it. Whether it’s a tray notification application or a system service or something else, it’s very common for a portion of the application to be “in use” come removal time.
Once again, ideally the uninstaller would terminate the running component, or ask you to terminate it. Sometimes it does. Sometimes it doesn’t. Sometimes it can’t, because either the application refuses to terminate, or the uninstaller simply can’t know what applications apply or how to “ask” them to terminate.
And as we know, a file that’s in use cannot be deleted.
Some uninstallers get around this by asking you to reboot, which forces the application to terminate, and by adding delete instructions that kick in at system boot time. In cases like this, you’ll often not see the files actually disappear until you perform that reboot.
Some uninstallers don’t even try, and leave the files that were in use behind.
So just what DO they uninstall?
The examples above are just that, examples. Perhaps they are the most common, but there are actually many other reasons that an uninstaller might well leave behind files, folders and registry entries.
So, given all the things that might get left behind, it’s a fair question to ask what they do uninstall. What’s the short answer?
They uninstall what they can. Mostly.
There’s no doubt about it, uninstalling software is one of the messier, problematic parts of software management. Depending on the scenario and the quality of the software, results are often all over the map.
In fact, there’s even a term for it: “Software Rot”. There are other things that contribute to software rot, but incomplete uninstalls are a major contributing factor.
What to do
My approach is actually pretty simple. Unless I’m experiencing an actual problem that can be traced to or is likely to have been caused by an incomplete uninstall, I do nothing.
Let me say that again: I do nothing.
You can spend a lot of time (and sometimes money) trying to clean up your system, often with little impact on the usefulness or performance of your machine, and often with questionable tools that sometimes themselves cause more problems than they’re worth. The practical reality is that incomplete uninstalls are messy but what they leave behind rarely actually causes a real problem.
That being said, the cumulative effect over time does happen. Systems can sometimes become more and more unstable due to software rot depending on how often you install and uninstall software, and what kinds of other things you do with your computer.
I know that there are alternatives that we’ll likely hear about in comments to this article, but my position is that the best way to truly clean your system over time is to periodically reformat and reinstall what you do use, from scratch. And I’ll even say it’s the only definitive and complete way to clean it up.
I do it perhaps every two years, either as a side effect of getting a new machine, repairing a machine, or having a machine finally reach a point where it’s the right thing to do.