How to Fix “Saved Credentials Not Allowed” RDP Error in Windows 7 via Active Directory Group Policy


3 views

When Windows 7 clients attempt RDP connections to Windows Server 2008 machines across networks, they frequently encounter the credential caching restriction. This security measure prevents potential man-in-the-middle attacks but creates workflow interruptions.

Manually adjusting each workstation's Local Group Policy to allow saved credentials presents several issues:

  • Maintenance overhead increases with each new machine
  • Inconsistent configurations across the environment
  • No centralized auditing capability

Deploying the configuration through AD GPO ensures enterprise-wide consistency. Create or modify an existing GPO with these settings:

Computer Configuration → Policies → Administrative Templates → System → Credentials Delegation
1. Enable "Allow Delegating Saved Credentials"
2. Add target servers to the list: TERMSRV/*

After GPO application, verify the registry setting on a test machine:

reg query "HKLM\SOFTWARE\Policies\Microsoft\Windows\CredentialsDelegation" /v AllowSavedCredentials

For immediate policy refresh without rebooting:

gpupdate /force

While convenient, credential caching introduces risks. Mitigation strategies include:

  • Restricting GPO application to specific security groups
  • Implementing NLA (Network Level Authentication)
  • Using RD Gateway for external connections

For cases where GPO modification isn't possible, users can manually add credentials:

cmdkey /generic:TERMSRV/server.domain.com /user:DOMAIN\username /pass

This stores credentials in the Windows Vault while maintaining the security policy.

For large environments, deploy this PowerShell script via SCCM or other management tools:


# RDPCredentialPolicy.ps1
$registryPath = "HKLM:\SOFTWARE\Policies\Microsoft\Windows\CredentialsDelegation"
$name = "AllowSavedCredentials"
$value = 1

if (!(Test-Path $registryPath)) {
    New-Item -Path $registryPath -Force
}

New-ItemProperty -Path $registryPath -Name $name -Value $value -PropertyType DWORD -Force

When Windows 7 clients attempt to RDP into Windows Server 2008 machines across untrusted networks, they encounter credential caching restrictions due to stricter security policies. The key elements triggering this behavior:

  • Certificate-based authentication requirements
  • Server identity verification failures
  • Group Policy enforcing CredSSP protocol restrictions

Instead of manually configuring each workstation, implement these Group Policy changes at the domain level:


# PowerShell snippet to verify current settings
Get-GPOReport -Name "Default Domain Policy" -ReportType Html -Path "C:\temp\GPOReport.html"

# Relevant registry paths to modify:
# HKLM\SOFTWARE\Policies\Microsoft\Windows\CredentialsDelegation
# HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services

Create a new GPO or modify existing Default Domain Policy with these settings:

  1. Enable: Computer Configuration > Policies > Administrative Templates > System > Credentials Delegation > "Allow Saved Credentials with NTLM-only Server Authentication"
  2. Set: Computer Configuration > Policies > Administrative Templates > Windows Components > Remote Desktop Services > Remote Desktop Connection Client > "Configure server authentication for client" to "Warn"

Deploy this PowerShell script to validate settings across workstations:


# RDP_Config_Verifier.ps1
$credDelegation = Get-ItemProperty "HKLM:\SOFTWARE\Policies\Microsoft\Windows\CredentialsDelegation" -ErrorAction SilentlyContinue
$tsAuth = Get-ItemProperty "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" -ErrorAction SilentlyContinue

if ($credDelegation.AllowSavedCreds -ne 1) {
    Write-Warning "Credential delegation not properly configured"
} else {
    Write-Host "Credential delegation configured correctly" -ForegroundColor Green
}

if ($tsAuth.AuthenticationLevel -lt 1) {
    Write-Warning "Terminal Services authentication requires adjustment"
}

For environments requiring certificate validation:


# Command to check certificate chain
certmgr.msc | where {$_.Subject -like "*RDP*"} | fl Subject,Thumbprint,NotAfter

# Export certificate for deployment
certutil -exportPFX -p "P@ssw0rd" My CurrentUser -f -v

For mixed OS environments, consider these additional measures:

  • Implement RDS Gateway for secure external connections
  • Deploy Azure AD Application Proxy for hybrid scenarios
  • Upgrade to Windows 10/11 clients with Credential Guard compatibility
Issue Diagnostic Command
Policy Application gpresult /H gpreport.html
RDP Connectivity Test-NetConnection -ComputerName server -Port 3389
Credential Caching cmdkey /list