OK, so is it safe to use a registry cleaner? Or, are they a no-no? Thank you.

Note: This question comes from our forums, and the response below is used with permission of the forum member (Bill CastnerMS MVP).

Mark Russinovich (Author of the “Bible”, Windows Internals, co-founder of Winternals and Sysinternals, and since both companies were bought by Microsoft, now a senior Microsoft employee) was asked:

Hi Mark, do you really think that Registry junk left by uninstalled programs could severely slow down the computer? I would like to ‘hear’ your opinion.

His reply fairly captures my own view (quoting Mark Russinovich):

No, even if the registry was massively bloated there would be little impact on the performance of anything other than exhaustive searches (ed. of the registry itself).
On Win2K Terminal Server systems, however, there is a limit on the total amount of Registry data that can be loaded and so large profile hives can limit the number of users that can be logged on simultaneously.
I haven’t and never will implement a Registry cleaner since it’s of little practical use on anything other than Win2K terminal servers and developing one that’s both safe and effective requires a huge amount of application-specific knowledge.

To which you can add the additional problems: Applications installed on a machine that is used by more than one person can creates entries for each user in their private registry store: HKEY_CURRENT_USER. Because registry cleaners (and REGEDIT.EXE) operate under SYSTEM permissions with the logged-in user security token, they cannot access these other registry entries.

Again, quoting Mark Russinovich:

Uninstallers typically delete their application’s system-wide settings from the HKEY_LOCAL_MACHINE part of the Registry and any per-user settings of the user running the uninstaller from HKEY_CURRENT_USER. But what happens to the per-user settings of the other users that used the application? You guessed it, Registry junk gets created – and possibly file system junk in the application’s Application Data folder in the \Documents and Settings directories of other users. An uninstall is only thorough if the user performing it is the only one that used the software.

So you have these issues with a registry cleaner:

  • If an application is installed and used only by one user, a registry cleaner run by another user will remove “invalid” entries in HKEY_LOCAL_MACHINE and disable the application from working by the other user(s);
  • If an application is installed by User #1, and used as well by User#2, the registry cleaner operation run by User#1 cannot remove the instances of the application created by User#2.
  • On top of these technical issues that should scare you away, there is the central argument made by Mr. Russinovich: only if the registry cleaner has a sophisticated database of all application software installation registry changes would it have a chance of being safe to use. There is to my knowledge no such animal out there.

Though the Microsoft Knowledge Base has a lot of articles on how to repair the damage created by using these utilities.

Summary:

Will using Registry Cleaners speed-up my system and make it more reliable?
It will have no effect on system speed. There is an excellent chance it will make your system less reliable.

So what should I do about the registry?
The best thing you can do is to enable System Restore and add to your Autostart applications a registry backup. Strongly recommended for this is ERUNT (freeware):
[ERUNT] Registry Backup and Restore for Windows
http://www.larshederer.homepage.t-online.de/erunt/
[ERUNT Download URLs]
http://www.aumha.org/downloads/erunt.zip
http://www.aumha.org/downloads/erunt-setup.exe
[Installing & Using ERUNT]
http://www.winxptutor.com/regback.htm
http://www.silentrunners.org/sr_eruntuse.html
http://www.larshederer.homepage.t-on…runt/erunt.txt

But I backup my registry reqularly using REGEDIT.EXE
You might as well not have bothered, the backups created by Regedit are of no use to you.
Neither does it export the whole registry (for example, no information from the “SECURITY” hive is saved), nor can the exported file be used later to replace the current registry with the old one. Instead, if you re-import the file, it is merged with the current registry without deleting anything that has been added since the export, leaving you with an absolute mess of old and new entries.

References:
http://blogs.technet.com/markrussinovich/a…ct-of-life.aspx
http://mywebpages.comcast.net/SupportCD/XPMyths.html
http://www.larshederer.homepage.t-online.de/erunt/erunt.txt

Are software registry cleaners of any use?
Fred Langa started with a standard PC, imaged it, and ran 10 registry cleaners. He ran each three times on an image:
Highest number of items that needed to be “fixed”: 800
Lowest number of items found to be “fixed”: 59

Does not this suggest that what needs to be fixed is not at all certain?
The other question it invites is it not possible that those generating a large number of entries are trying to sell snake oil? See this small discussion that prompted Langa to test. Quoting letter to Fred:

What are your thoughts on Registry Programs? I have run five different programs on the same computer, without making any of the recommended changes, and get the following results:
Registry Repair from Stomp — 732 errors
Registry 1st Aid from Rose City — 73 errors
Registry Mechanic from PC Tools — 18 errors
Registry Medic from Iomatic — 50 errors
Easy Cleaner from Toni Arts — 36 errors
No, that’s not an error; Stomp did return 732 errors. Best Regards, John

Mr. Langa answers: There are several reasons for the disparity in those error counts. First there’s the matter of simple semantics: At one end of the spectrum, there are Registry errors that — if not corrected — may make a system unbootable or unstable, or that may cause some of your software to crash or to malfunction. But at the other end of the spectrum, there are trivial, transient Registry items that are intended for short-term use, that harm nothing when they go out of date, and that are ultimately self-correcting via normal Windows housecleaning. Naturally, counting these latter as “errors” drives up the count and lets a given piece of software generate impressive-looking stats; but removing those “errors” doesn’t mean much in terms of a real benefit.

I cite the article so that you can read it in full: http://www.informationweek.com/LP/showArti…&queryText=

But back to Mr. Langa’s testing. One reason for testing each cleaner three times was as a credibility check. If you run the same cleaner three times consecutively, it would be a fair assumption that the results should be nearly identical each time. It would be hard to make a credible case for using a product that changed its mind about what was a registry entry to be cleaned if run three times as a test. As Fred explains:

Doing immediate second and third runs with each cleaning tool was to see if any of the programs under test were fudging their numbers by over-reporting errors. For example, if a tool was really doing what it said it was, it would find and fix all the errors it could on the first run. Immediate subsequent runs should show essentially zero errors, because they all were fixed on the first run, right?

But if a tool still reports a significant number of errors on the second and third runs, you might wonder what was going on: Why couldn’t the tool find and fix all the errors the first time? Is the tool introducing new errors as it runs? Is it fudging the numbers to make you think it’s doing more than it really is? Is it reporting as “errors” some things that really aren’t errors after all?

At the least, it seems to me that a good Registry cleaning tool should report a stable, repeatable, and very low number of errors on back-to-back repeated runs. To me, a tool that can’t get the number of reported errors down to a stable, low minimum number on repeated runs either isn’t fixing things right, or isn’t analyzing them right in the first place. Your mileage may vary, but I tend to stay away from tools that act this way.

With apologies to Fred Langa, my summary of his test results:

  • JV16 PowerTools 1.3.0.195: I included the last free version of this highly regarded tool — from 2003 — because so many of you will be familiar with it. As such, it can be a kind of touchstone you can use for context in comparing newer tools. When run on my test system, it identified 307 problematic items in the Registry, 122 of which it deemed “safe to remove.”
  • JV16 Powertools 2005: On our test system the PowerTools 2005 Registry Cleaner’s “aggressive” setting dug far deeper than its simpler, earlier cousin (above), finding and removing a total of 800 problem items, including 53 “highest” level problems, 691 “moderate” problems, and 56 “low-level” problems. This one proved a Fred Langa favorite. The results were repeatable after three runs.
  • Easy Cleaner: EasyCleaner found and removed 99 entries on its first pass — on rough par with the old version of JV16 PowerTools. The second and third runs found zero additional items, meaning that the tool found and removed everything it could the first time, just as it should have, with no artificial number-pumping going on to try to impress you. EasyCleaner is a very nice little tool, and you sure can’t beat the price! (freeware) A Langa favorite.
  • Registry Mechanic: found and removed 39 errors while informing me that the $30 paid/registered full version would remove an additional 58. …Repeated runs turned up 19 problems each time. I have no way of knowing if these were 19 new problems, or 19 of the initial 39 that weren’t really fixed, or 19 that came back after reboot, or what. But the combination of a low initial error count results and relatively high repeated count puts this tool on my “don’t bother” list.
  • Registry Repair: its first run when it reported it found and fixed an impressive 691 problems. But my interest faded quickly when the second run reported 124 items, and the third run reported 200 items. To me, that’s a sign of something very wrong going on: either the program is introducing new errors as it runs; or is failing to correct some errors it reports; or is falsely reporting as “errors” things that are not really errors at all.
  • Registry First Aid: found 59 problems on first run, less than what the old JV16 version could do. …Alas, the second and third runs showed a real problem, reporting 123 and 109 problems, respectively; higher than the number found in the original run!
  • Registry Medic: The initial scan on my test system turned up an even 100 problems, with the second and third scans turning up 80 and 68, respectively. The initial “100″ didn’t alarm me, as it’s close to the number of “safe to fix” items reported by the old JV16 version, but if your initial scan starts at 100, how on earth can an immediate rescan still show 80 problems? That’s a big red flag for me, and so I set aside this software, as well.
  • The Registry Drill: In my tests, the Registry Drill found 134 items in its first pass, 110 in the second, and 109 in the third. These lackluster repeat performances, plus an antiquated-looking interface, and a setup that makes it clear that XP support was bolted on to a much older product, all help convince me that this is not a top-tier tool.
  • RegistryFix: In my tests, the software flagged 105 problems on the first run, 66 on the second, and 55 on the third. The program’s interface is nice enough, but the results weren’t anything special. I see no particular reason to select and use this software.
  • CleanMyPC: In my tests, the software found 130 problems on the first run, 114 on the second run, and 112 on the third; another lackluster performance that doesn’t seem to warrant a deeper look.

The fact that your own results will likely vary is even more cause of concern. There simply is not a reliable way to test if a registry entry is valid or not. This requires a trained eye and not an automated tool. Langa cites the worst possible case for registry trash: a computer upgraded from Win98 to XP. The computer received regular scans from Norton’s “WinDoctor” and ToniArts “EasyCleaner.” When given to a group of XP experts, they manually removed over 3,000 entries.

Summary of Registry Cleaner Software:
Do not bother with this. It it unlikely to help, it can cause harm.
There are no end-user benefits from running registry cleaners. Unecessary entries in the registry do no harm. This should not be a regular maintenance chore. It most certainly if done should not be automated.

I hold to the singular distinction I made in the beginning: there are times that a fast registry editor with search is needed to fix a single issue under Expert hands. There is no justification for the regular use of automated registry cleaning tools; and as the results above show, they are of dubious merit as the “fix” for even one-off problems that need solving.

Bill Castner
MS-MVP, AumHa VSOP, DTS-L