NTFS Permission Inheritance Issue: Domain Admins Denied Access Despite Local Administrators Membership in Server 2008 R2


2 views

Here's a scenario many Windows admins encounter: You've properly nested DOMAIN\Domain Admins within SERVER\Administrators, assigned Full Control NTFS permissions to the local Administrators group, yet your Domain Admin account still gets access denied until manually granting permissions through UAC prompts.

Server 2008 R2 introduces UAC token filtering where administrative accounts receive two access tokens:

// Standard user token (filtered)
// Full administrator token (elevated)

The key detail is that group memberships are only evaluated for access checks when the token is created during logon. This explains why nested group permissions don't immediately take effect.

To modify this behavior, you can tweak these registry values:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]
"LocalAccountTokenFilterPolicy"=dword:00000001
"FilterAdministratorToken"=dword:00000000

These settings respectively:

  1. Disable filtering of local admin accounts
  2. Enable full administrator tokens for domain accounts

For enterprise deployment, use this PowerShell script to configure servers consistently:

# Configure UAC behavior for Domain Admins
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" 
    -Name "LocalAccountTokenFilterPolicy" -Value 1

# Verify the setting
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" |
    Select-Object LocalAccountTokenFilterPolicy

Instead of registry modifications, consider these permission architectures:

  • Explicit Deny Removal: Check for any explicit DENY entries that might override allows
  • Access-Based Enumeration: Configure ABE to properly display accessible resources
  • Delegation Model: Create custom security groups for specific admin tasks

Use PowerShell to audit actual access rights:

# Check effective permissions for a folder
$acl = Get-Acl "C:\ProtectedFolder"
$accessRules = $acl.Access |
    Where-Object { $_.IdentityReference -like "*Domain Admins*" }
$accessRules | Format-Table IdentityReference, FileSystemRights -AutoSize

For production environments:

  • Implement Group Policy Preferences to manage registry settings
  • Document all permission exceptions in change management systems
  • Consider Just-In-Time administrative access solutions
  • Regularly review privileged group memberships

Here's what's happening under the hood when a Domain Admin (who's in the local Administrators group) hits that UAC prompt:

// Simplified permission check flow
if (isTokenElevated()) {
    // Uses full admin token (including Administrators group membership)
    checkNTFSPermissions();
} else {
    // Uses filtered standard user token (Administrators group disabled)
    triggerUACprompt();
}

Windows Server 2008 R2 implements User Account Control (UAC) with these key behaviors for administrative accounts:

  • Even when logged in as Domain Admin, processes run with a filtered token by default
  • The local Administrators group membership is disabled in this filtered token
  • Only when elevating through UAC do you get the full token with all group memberships enabled

For sysadmins needing persistent access without constant UAC prompts:

# PowerShell to grant explicit permissions to Domain Admins
$acl = Get-Acl "C:\SharedFolder"
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule(
    "DOMAIN\Domain Admins",
    "FullControl",
    "ContainerInherit,ObjectInherit",
    "None",
    "Allow"
)
$acl.AddAccessRule($rule)
Set-Acl -Path "C:\SharedFolder" -AclObject $acl

Consider these architectural solutions:

  1. Create dedicated file server admin groups separate from Domain Admins
  2. Configure Folder Redirection for administrative access points
  3. Disable UAC filtering (not recommended for production)
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]
"LocalAccountTokenFilterPolicy"=dword:00000001

The most secure approach combines these elements:

Component Recommended Setting
Domain Admin usage Only for domain-level tasks
File server access Separate server admin groups
NTFS permissions Explicit deny for sensitive folders