I’ve been having this problem. It’s not caused by a corrupt icon cache. It’s caused by bad permissions on the shortcut. If you right-click it, go to Properties, and then Security, you will see a message about not having permission.
The solution (after going to the above) is to:
- Click the Advanced button.
- Click the Owner tab.
- Click Edit…
- Click your user name and hit OK. You’ll get a message about having to re-open the object’s properties. Just close all the windows you opened and right-click the shortcut again to get to Properties.
- Click Security again.
- Now you will have some checkboxes. Click Edit… and with your username selected, check Full Control. Hit OK twice, and your icon will work again.
This may also work for desktop icons. I’ve noticed a lot of problems in Windows are caused by incorrect permissions.