手动重建\_msdcs等srv记录适用于自动注册失败等临时场景,需分森林级(\_msdcs.域名)和域级(域名)区域添加ldap、kerberos等记录,推荐dnscmd批量操作并验证解析与清缓存。
手动重建缺失的 _msdcs 等关键 srv 记录,适用于自动注册失败、紧急恢复或验证场景,但不是长期方案——它绕过了 netlogon 的动态生命周期管理,无法响应密码轮换、dc 下线等变更。操作前务必确认 dns 区域已启用安全动态更新,且 dc 的 dns 客户端设置指向自身(127.0.0.1)或可信内网 dns。
先确认缺失范围和对应区域
SRV 记录分布在两个不同 DNS 区域中,不能只查一个:
-
_ldap._tcp.dc._msdcs.你的域名属于森林级区域,需在_msdcs.你的域名这个正向查找区域中添加 -
_kerberos._tcp.你的域名和_kpasswd._tcp.你的域名属于域级区域,需在你的域名(如 contoso.com)主区域中添加 - 用
nslookup -type=srv _ldap._tcp.dc._msdcs.contoso.com和nslookup -type=srv _kerberos._tcp.contoso.com分别验证,明确哪几项为空
通过 DNS 管理器手动添加(图形界面)
以管理员身份打开 DNS 管理器,按区域逐个操作:
- 右键目标正向查找区域(如
_msdcs.contoso.com)→ “其他新记录” → 选择“服务位置(SRV)” - 填写字段:
– Service:_ldap
– Protocol:_tcp
– Name:dc._msdcs(注意不是完整 FQDN)
– Port:389
– Host:dc01.contoso.com.(末尾带英文句点,表示绝对域名)
– Priority / Weight:均填0 - 同理,在
contoso.com区域中添加:
–_kerberos._tcp,端口88
–_kpasswd._tcp,端口464
使用 dnscmd 命令批量补录(推荐用于多 DC 环境)
在 DNS 服务器本地以管理员身份运行 CMD,语法清晰、可脚本化:
- 为
_msdcs区域添加 LDAP 记录:dnscmd /recordadd _msdcs.contoso.com dc._msdcs 600 SRV 0 100 389 dc01.contoso.com. - 为域级区域添加 Kerberos 记录:
dnscmd /recordadd contoso.com _kerberos._tcp 600 SRV 0 100 88 dc01.contoso.com. - 说明:
– 第三段是记录名(不含下划线前缀),dc._msdcs或_kerberos._tcp
–600是 TTL(秒),建议设为 600~3600
–0 100是优先级与权重,生产环境统一用0 100即可
验证与收尾动作
添加后必须验证生效,并同步清理客户端缓存:
- 在 DNS 服务器上执行:
nslookup -type=srv _ldap._tcp.dc._msdcs.contoso.comnslookup -type=srv _kerberos._tcp.contoso.com - 从待加域客户端执行相同命令,确认能解析出刚添加的记录
- 客户端清缓存:
ipconfig /flushdns - 检查事件查看器 → Windows 日志 → System,筛选 NETLOGON 源,确认后续是否出现 ID 5781(自动注册成功),若出现,说明机制已恢复,可考虑删除手动记录











