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

如何解决调用Domain.GetCurrentDomain().DomainControllers时的AD域控制器DNS主机名获取失败异常

如何解决调用Domain.GetCurrentDomain().DomainControllers时的AD域控制器DNS主机名获取失败异常

遇到这种因为单台域控制器(SERVER002)DNS问题导致整个Domain.GetCurrentDomain().DomainControllers调用抛异常、无法返回任何DC的情况,我通常会从以下几个方向排查和修复:

一、先检查问题DC自身的DNS配置与注册状态

  • 登录到SERVER002这台域控制器,打开TCP/IP属性,确认它的DNS服务器地址指向的是域内合法的DNS服务器(不能是公网DNS或错误地址),同时DNS后缀要设置为TLD.org。
  • 执行命令手动触发DNS记录注册:
    ipconfig /registerdns
    
    然后重启Netlogon服务(负责DC的DNS记录自动注册):
    net stop netlogon && net start netlogon
    
    这一步通常能修复大部分自动注册失败的问题。

二、检查域DNS服务器上的关键记录

登录到域DNS服务器,打开DNS管理器,定位到TLD.org域区域,重点检查以下记录:

  • A记录:确认SERVER002.TLD.org对应的A记录存在,且IP地址是这台DC的正确内网IP;如果有过时或错误的A记录,直接删除或修改。
  • SRV记录:
    • 查看_sites/Site01/_tcp和_sites/Site01/_udp目录下,LDAP、Kerberos等服务的SRV记录,确认SERVER002的条目存在,且目标主机指向正确的SERVER002.TLD.org。
    • 检查_msdcs.TLD.org下的DC相关SRV记录(比如_ldap._tcp.dc._msdcs.TLD.org),确保SERVER002的条目正常。

三、手动修复DNS记录(自动注册失效时)

如果自动注册始终失败,可以手动添加/修正记录:

  1. 添加A记录:在TLD.org区域右键新建「主机」,主机名填SERVER002,输入正确的IP地址,勾选「创建相关的指针(PTR)记录」(如果反向查找区域存在)。
  2. 添加SRV记录:比如在_sites/Site01/_tcp下右键新建「其他新记录」,选择「服务位置(SRV)」,服务填_ldap,协议_tcp,优先级0,权重100,端口389,目标主机填SERVER002.TLD.org。

四、极端情况:移除故障DC(如果SERVER002已彻底损坏)

如果SERVER002已经无法修复或准备退役,需要从AD中彻底移除它:

  • 如果DC还能登录,运行dcpromo降级;如果已经离线,用dcpromo /forceremoval强制降级。
  • 然后清理AD元数据,确保AD中不再有这台DC的残留对象,这样后续调用Domain.GetCurrentDomain().DomainControllers就不会再尝试访问它了。

验证修复效果

在出现问题的机器上执行以下命令验证:

  • nslookup SERVER002.TLD.org:确认能正确解析到IP。
  • nslookup -type=srv _ldap._tcp.Site01._sites.TLD.org:确认能找到SERVER002的SRV记录。
    之后再测试Domain.GetCurrentDomain().DomainControllers调用,应该就能正常返回DC列表了。

备注:内容来源于stack exchange,提问作者dragonspeed

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.20 08:38:11