Prevent Windows Deleting Working Shortcuts During Scheduled System Maintenance
I spent some time over probably a period of a year+ trying to figure out why random shortcuts to programs or files kept disappearing on their own in Windows 7. Most annoying when you have to keep re-creating these shortcuts on a daily basis.
The reason some shortcuts get deleted by Windows is thanks to the “enhancement” of an automatically scheduled system maintenance process that removes any broken or unused / expired shortcuts – unfortunately, in typical Microsoft fashion, the process is flawed and often perfectly fine and working shortcuts get deleted (I find these are usually shortcuts to locations on other drives or network paths).
It took a while for this problem to gain some traction on the web and eventually, many Windows users starting experiencing the issue and various websites started blogging about various ‘fixes’ (although they aren’t really fixes at all).
This issue can affect any shortcuts located on the desktop, located in the quick launch toolbar or pinned to the start menu / taskbar.
Let’s start first by looking at Microsoft’s own useless ‘fixit’. Their two methods include ‘remove all but 4 broken shortcuts’ and ‘disable the automatic scheduled system maintenance process. Whilst the first method also suggests the creation of a directory somewhere on the system to place shortcuts in, this requires an extra ‘click’ and defeats the purpose of creating shortcuts! Disabling the system maintenance will disable all maintenance which isn’t recommended from a security standpoint.
Other sources that have posted workarounds or so called fixes include:-
- Lifehacker’s Stop Windows 7 from Deleting Your Desktop Shortcuts
- Ghacks’ Fix Windows 7 Desktop Shortcuts Disappearing
The problem is, these aren’t really fixes although the two articles above are the closest you’ll get to a fix. They include steps to disable the process of deleting broken shortcuts when system maintenance is performed. It’s not really a fix because then any actual broken shortcuts won’t get cleaned up either.
Anyone else that has blogged about this problem mostly suggest a registry edit to disable to broken shortcuts cleanup and disabling system maintenance altogether like Microsoft themselves suggest (Wow! Great…).
A fix is solving the problem by making Windows think that the shortcuts aren’t broken in the first place. And that’s exactly what we’ve managed to achieve although I grant you, it is fiddly and not recommended for those that don’t fully understand what we’re doing.
What we’re going to implement is a symbolic link from the C:\ to the relevant path (the correct location of the directory/file). This way Windows will think it is located on the C:\ system drive (so definitely won’t have a problem finding this and subsequently thinking the path is broken).
We’ll use a specific example that were one of our issues, and this is the FileHippo Update Checker that checks if there any updates to your systems installed programs. This application was installed on the D:\ drive (like most of our software by default) but sure enough, Windows didn’t like this and despite the location existing, continually kept deleting the shortcuts on the Desktop, in QuickLaunch and StartMenu to this program.
Before beginning with any of the below, it is highly advisable to create a restore point so you can roll back to this in the event anything goes wrong.
- Click Start, type cmd and when the program shows in the list, right mouse click and select ‘Run as administrator’ (if you do not have an administrative rights on your system, then you will need to seek assistance from someone who has).
- In the command prompt, you will need to navigate to the location you wish to create the symbolic link. In our case, it was C:\Program Files <x86>. It isn’t possible to simply
cd C:\Program Files <x86>as you will get a syntax error. You need to find out what the shortname of the directory is using
You’ll then need to locate the directory shortname like the below screenshot highlights…
- Then create your symbolic link to the location of the shortcut that is broken, like so:-
mklink /d C:\PROGRA~2\Filehippo.com D:\PROGRA~3\Filehippo.com
thus mapping a Filehippo.com directory in
C:\Program Files \Filehippo.comto the real installation location of the program
D:\Program Files \Filehippo.com
- Once this symbolic link has been created, right mouse click on your shortcut icon and select ‘Properties’.
- In the ‘Shortcut’ tab, change the ‘Target’ path to the version at the C:\ drive, in this example, like
"C:\Program Files (x86)\Filehippo.com\UpdateChecker.exe".
And that’s it. Windows no longer thinks that this shortcut is broken, it launches the program absolutely fine and the shortcut is no longer detected by the system as being broken.
You can read more on creating symbolic links for this purpose at Tech Support Alert.