You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用CNAME指向RDP主机时无法存储密码的排查求助

RDS通过CNAME连接时无法存储密码的问题排查

环境与问题描述

  • 客户端:加入域的Windows 10/11电脑/笔记本
  • 服务器:两台加入域的服务器,部署为默认单服务器RDS架构
  • 需求:用CNAME记录指向当前活跃的RDP主机

遇到的问题:
用户通过CNAME连接并尝试存储密码时,收到提示“……因为其身份未完全验证……”;但直接通过主机名(A记录)连接时,可正常存储密码。

已尝试操作:

  1. 配置组策略Allow delegating default credentials with NTLM-only server authentication——无效
  2. 完全禁用NTLM——无效

关键遗漏配置与解决步骤

1. 为CNAME注册对应SPN(核心根源)

Windows的RDP身份验证依赖Kerberos时,CNAME记录默认不会被识别为可信的服务主体名称(SPN)关联对象,导致凭据存储验证失败。需手动为CNAME注册RDP服务的SPN:

  • 在域控制器上以域管理员身份运行命令提示符:
    setspn -S TERMSRV/你的CNAME全称.域名.com 你的RDS服务器主机名
    setspn -S TERMSRV/你的CNAME 你的RDS服务器主机名
    
  • 验证SPN注册结果:
    setspn -L 你的RDS服务器主机名
    
    确认输出中包含上述两条TERMSRV开头的记录。

2. 修正组策略的凭据委派范围

之前的组策略可能仅添加了RDS服务器主机名,需补充CNAME条目:

  • 打开域组策略管理器(gpmc.msc)或本地组策略编辑器(gpedit.msc)
  • 导航至:计算机配置 > 管理模板 > 系统 > 凭据分配 > Allow delegating default credentials
  • 启用策略后,点击「显示」,添加以下格式的条目:
    TERMSRV/你的CNAME全称.域名.com、TERMSRV/你的CNAME
  • 同步更新Allow delegating default credentials with NTLM-only server authentication策略,添加相同的CNAME条目。

3. 调整客户端安全验证级别(可选)

若客户端未完全应用域组策略,可手动调整本地安全设置:

  • 运行secpol.msc,导航至:本地策略 > 安全选项 > 网络安全: LAN Manager 身份验证级别
  • 设置为「发送 NTMLv2 响应\拒绝 LM & NTLM」
  • 若之前禁用NTLM导致Kerberos无法降级,将网络安全: 限制 NTLM: 入站 NTLM 流量设置为「允许所有」

4. 清除客户端旧凭据与Kerberos票据

  • 打开「凭据管理器」,删除所有与RDS服务器/CNAME相关的存储凭据
  • 运行命令清除Kerberos票据:
    klist purge
    
  • 重启客户端后重新尝试连接并存储密码

额外验证点

  • 确认CNAME解析正常:客户端ping CNAME能返回正确的RDS服务器IP
  • 检查RDS服务器的Kerberos日志(事件查看器 > 系统 > Kerberos事件),若存在事件ID 4771,可根据日志细节排查SPN权限或配置问题

内容的提问来源于stack exchange,提问作者Lukas-N

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 20:02:48