18 May 2013

Fully disable User Access Control (UAC) via Group Policy (GPO)

I'm sure Windows' User Access Control is a wonderful idea and dramatically improved security levels of this once-beleaugured operating system. Unfortunately, most COM/DCOM-based software was written before 2007 and simply doesn't like it (cough*Oracle EPM Financial Management*cough); 6 years later, we're still forced to disable it in many cases.

This is usually achieved through Active Directory policies. Most documents and guides will tell you that you just need to turn off three policies in Windows 2008, under Computer Configuration -> Policies -> Windows Settings -> Security Settings -> Local Policies -> Security Options:


  • User Account Control: Behavior of the elevation prompt for administrators in Admin Approval Mode (set to Elevate without prompting)
  • User Account Control: Detect application installations and prompt for elevation (set to Disabled)
  • User Account Control: Run all administrators in Admin Approval Mode (set to Disabled)

Unfortunately, this will bring that lovely UAC slider all the way down, but will still results in a weird behaviour where local administrators have most rights but not all of them. The typical test I perform is to open a regular Command Prompt and try to navigate to C:\Windows\SysWOW64\Config - if I get an Access Denied message, then UAC is still lurking in the shadows.

The extra kick we need is, from my tests, this:


  • User Account Control: Only elevate UIAccess applications that are installed in secure locations (set to Disabled)

As explained on the technet site, this policy refuses to elevate applications that don't live in "secure locations" (i.e. %windir% or Program Files). It makes sense that such a policy would affect third-party software dropping executables in their own home folders (cough*lots of Java stuff*cough), but why cmd.exe? No idea, but there you are. For all intents and purposes, UAC is completely turned off only when all these four policies are disabled; miss one of them, and things will get weird. 

I wish Microsoft had just given us a big button that said Behave like Windows 2003, but I guess it wouldn't have sold new manuals and certification lessons.

4 comments:

John Gillespie said...

Thanks so much, I need this to run the Legacy Oracle app on Windows 2012 RDS

Anonymous said...

Slider aint all the way down with this policy. Useraccount control still nags if I were to open regedit. :(

Anonymous said...

you can also disable it using regedit/registry so that it persists through all versions of windows.
keys are as follows to turn it off

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\ConsentPromptBehaviorAdmin: 0x00000000

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\EnableLUA: 0x00000000

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\PromptOnSecureDesktop: 0x00000000

HKU\CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Action Center\Checks\{C8E6F269-B90A-4053-A3BE-499AFCEC98C4}.check.0\CheckSetting: 23 00 41 00 43 00 42 00 6C 00 6F 00 62 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00


to turn it back on(to highest) with the following

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\ConsentPromptBehaviorAdmin: 0x00000002

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\EnableLUA: 0x00000001

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\PromptOnSecureDesktop: 0x00000001

HKU\CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Action Center\Checks\{C8E6F269-B90A-4053-A3BE-499AFCEC98C4}.check.0\CheckSetting: 23 00 41 00 43 00 42 00 6C 00 6F 00 62 00 00 00 00 00 00 00 01 00 00 00 80 00 00 00 41 00 70 00 7A A2 40 BF B6 AA CF 01 00 00 00 00 7B 00 43 00 38 00 45 00 36 00 46 00 32 00 36 00 39 00 2D 00 42 00 39 00 30 00 41 00 2D 00 34 00 30 00 35 00 33 00 2D 00 41 00 33 00 42 00 45 00 2D 00 34 00 39 00 39 00 41 00 46 00 43 00 45 00 43 00 39 00 38 00 43 00 34 00 7D 00 2E 00 6E 00 6F 00 74 00 69 00 66 00 69 00 63 00 61 00 74 00 69 00 6F 00 6E 00 2E 00 31 00 00 00 50 00 69 00 6E 00 6E 00 65 00 64

Anonymous said...

Looks like even with those 4 gpos, we don't get all permissions. For example I still can't use that command : fsutil behavior query SymlinkEvaluation
Any idea ?