Most annoying and confusing part of installing K2 coldfixes (those which involve manual steps) is adding/removing assemblies from GAC – I keep seeing people utterly confused by this process and even despite doing this regularly myself keep bumping into different hurdles from time to time. And judging by amount of questions in the Internet a lot of people experience issues with adding/removing libraries to GAC too.
There is couple of issues with .NET v2 GAC which has so called “Assembly Cache Viewer” representation when you get while browsing to “C:\Windows\Assemlbly” folder. As with any thing designed with some good intentions it is a mixed blessing and especially so when it meets with UAC 🙂 On the one hand it allows for easy uninstall/registration by means of drag and drop, on the other sometimes you can’t uninstall items without cleaning up registry key first and sometimes you have hard time thanks to UAC and Explorer process being always run without elevation.
On my test boxes UAC is normally disabled completely making it easy to work with Assembly Cache Viewer, and in some other cases just disabling UAC by moving respective slider in control panel + reboot solves this or for those avoiding reboots killing explorer and then running it in elevated mode does the trick. But recently I bump into especially annoying scenario where previous battle tested workaround didn’t work for me. Symptoms – you trying to uninstall assembly from .NET v2 GAC – Assembly Cache Viewer and getting “Access Denied”, like that:
Running Exploerer in elevated mode doesn’t help, and if you look at UAC slider in control panel it is already moved to the lowest position pretending to be disabled. Welcome to the world of corporate GPO managed IT environments. This means that User Account Control: run all administrators in Admin Approval Mode policy is Enabled. Solution? gpedit.msc > Security Settings > Local Policies > Security Options > User Account Control: run all administrators in Admin Approval Mode, set this policy to disabled and reboot your machine. Yes, reboot is required. This is really good example of issues that sometimes on a user side/GUI GPOs just silently block stuff with no clear indication of this, consequently even for IT pros it takes some time to figure out that things are failing thanks to those things (think of UAC or IE Enterprise Mode) and unfortunately quickly solving these tiny hiccups largely depends on whether you seen this before or not 🙂