Windows – prevent the change of overlay icons

batch fileiconswindows-registry

Background

Several programs modifiy the icons in explorere to indicate a state ("synched" TortoiseCVS sync overlay etc.)

It is a known fact, that Windows (win7, win8, win10?) can only handle a limited amount of such icons (~15) and there are several related questions (f.e.here).

These overlay-icons are registered in the registry in the branch:

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers

Location of shell overlay icons in registry

Only the first couple of entries (15?) are actually used, the others are ignored. As a result, having multiple programs installing their own overlay icons can corrupt behaviour of already installed programs.

To fix this, one usually has to go into the registry and delete (or rename) unwanted entries until the wanted ones are on top.

Problem

Recently, I've noticed an increasingly 'aggressive' behavior of several programs fighting for these top-positions. This is most often done by having key-names which start with white-space characters to enforce top-sorting.
Dropbox, GoogleDrive, SkyDrive and OneDrive are for example all doing this. Some, like GoogleDrive even use three white-spaces nowadays, but other programs are getting equal…

What is worse, some programs even repair this setting automatically during any automated 'update' (or even update-check or program launch?). So any manual adjustments are regularily undone.
I have noticed this at least for GoogleDrive, Dropbox and OneDrive

Question

Is there a way to 'protect' the registry from such automated changes?

Edit (Answer)

Alexey Ivanov has given a good suggestion in the comment below, and so far "revoking registry privileges" has suppressed the problem for me.

Best Answer

What I did, since Dropbox is really becoming annoying, is I created a ".reg" file that removes all those Dropbox entries:

Windows Registry Editor Version 5.00

[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\   DropboxExt01]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\   DropboxExt02]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\   DropboxExt03]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\   DropboxExt04]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\   DropboxExt05]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\   DropboxExt06]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\   DropboxExt07]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\   DropboxExt08]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\   DropboxExt09]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\   DropboxExt10]

Then, I run a ".cmd" file that executes it and restarts Windows Explorer:

regedit -s FixDropboxTortoiseSVNConflict.reg

taskkill /f /im explorer.exe

start explorer.exe

And TortoiseSVN shows icon overlays again.

Not the most beautiful way of doing things, and may require changing the registry keys above when Dropbox changes them in the future again, but removes some manual work of going to the registry and rename/delete them, one by one :)

Related Question