每个在活动目录环境中管理计算机的IT管理员都曾经有过这样的经历。您尝试将计算机添加到活动目录(AD)域并收到可怕的“无法联系活动目录域控制器”错误。在本文中,学习诊断(和解决)这个问题的步骤,彻底解决这个问题。
A FREE read only tool that scans your AD and generates multiple interactive reports for you to measure the effectiveness of your password policies against a brute-force attack. Download Specops Password Auditor now!

这个错误与DNS有关。主要问题是计算机未能找到加入AD域所需的适当SRV DNS记录。
I’ve put together a few steps for you to follow to fix this error and get your computer joined to your domain.
确保您正在使用正确的DNS服务器
在深入研究之前,首先确保您首先使用的是正确的DNS服务器。
活动目录和DNS有着特殊的关系。域控制器在它们知道的DNS服务器中注册特定记录。这些记录存储在_ldap._tcp.dc.msdcs.<domainname>区域,并帮助AD加入设备查找资源,如域控制器。在非AD集成的DNS服务器中,SRV记录将不存在。
要解决此问题,您需要使用以下之一:
- AD集成的DNS服务器
- A DNS server that replicates records from an AD aware DNS server
- A DNS server that has forwarding set up to query either an AD-integrated DNS server or a DNS server with replicated records
要检查您使用的DNS服务器是否为上述之一,请在现有的域加入计算机上的PowerShell会话中运行以下命令:
服务器地址列下获取的响应是该计算机正在使用的DNS服务器。如果您没有另一个域客户端进行检查,您将需要联系您的网络团队获取这些信息。
您可以使用PowerShell的Set-DnsClientServerAddress
cmdlet来更改计算机的DNS客户端设置,或者通过计算机的网络适配器的IPv4属性对话框进行更改。通过转至控制面板 -> 网络 -> 互联网 -> 网络连接。
一旦进入网络连接窗口,右键单击网络适配器,选择属性,选择Internet Protocol Version 4 (TCP/IPv4),然后单击属性

如果网络使用动态主机配置协议(DHCP),请确保选择了自动获取IP地址和自动获取DNS服务器地址选项。
如果您的网络不使用DHCP,则将首选DNS服务器和备用DNS服务器的值更新为之前获取的正确值。
找到真正的错误
如果您确认计算机具有正确的DNS服务器,则是时候深入了。
当您尝试将计算机加入域时,出现错误“无法联系到Active Directory域控制器”,但这并不是“真正”的错误消息。您需要再深入一点。
在错误对话框中,您会注意到一个详细信息 >>按钮。点击它。这将返回更详细的信息,帮助您更好地排查此错误。

您可以选择文本框的内容进行复制和粘贴到文本查看器中,或者您可以在该计算机上的C:\windows\debug\dcdiag.txt文件中找到相同的信息。这个文件是Windows在发生错误时创建的。
错误文本包含一些关键信息。我在下面的示例中标记了每个这些信息的编号和加粗:
- 计算机认为您要加入的域名(1)
- 错误代码(2)
- 进行的DNS查询(3)
- 计算机查询的DNS服务器(如果有)(4)
注意:此信息仅供网络管理员使用。如果您不是网络管理员,请通知管理员您已收到此信息,并已记录在文件C:\windows\debug\dcdiag.txt中。
在查询用于查找Active Directory域控制器(AD DC)的服务位置(SRV)资源记录时,发生了以下错误,该错误用于域“carisbrookelabs.local”(1):
错误为:“DNS名称不存在。”
(错误代码0x0000232B RCODE_NAME_ERROR)(2)查询的是SRV记录,用于_ldap._tcp.dc._msdcs.carisbrookelabs.local(3)
这种错误的常见原因包括以下几点:
用于定位域的AD DC的DNS SRV记录未在DNS中注册。这些记录在将AD DC添加到域时会自动在DNS服务器上注册。它们由AD DC定期更新。此计算机配置为使用以下IP地址的DNS服务器:
8.8.4.4
8.8.8.8 (4)以下一个或多个区域未将其子区域委托给其子区域:carisbrookelabs.local
local
(根区域)
0x0000267C DNS_ERROR_NO_DNS_SERVER
此错误表明找不到DNS服务器,即使尝试查询也是如此。它甚至没有得到尝试的机会。这通常是由于与DNS服务器的无网络连接引起的。
请注意,您可以加入没有网络连接的计算机,也称为脱机域加入,但这超出了本文的范围。
排除您的网络连接问题
如果看到此错误消息,您需要开始进行一些网络故障排除。
- 检查您的网络适配器是否已启用并且您可以连接到其他网络资源。
- 检查是否已配置IP地址和DNS服务器。
您可以通过运行ipconfig /all
来检查IP地址和DNS服务器。
如果您有一个IP地址并且可以访问其他网络资源,您需要测试计算机与DNS服务器之间的连接。
为此,您可以使用ping
和PowerShell的Test-Connection
cmdlet。使用这两种工具中的任何一种测试与DNS服务器的连接性。如果Internet Control Message Protocol(ICMP)流量在网络上被允许,您应该会收到响应。如果出现错误或超时,您很可能遇到了某种网络问题,如路由问题。与您的网络团队交谈以解决问题,然后再试着加入。
检查DNS连接性
如果您已确认网络连接正常工作,您接下来需要确保您的计算机可以通过TCP/53连接到DNS服务器。
尝试使用Resolve-DNSName
PowerShell cmdlet以及您尝试加入的域的FQDN。这应该会返回一个或多个DNS服务器记录:
如果您收到一个错误,那么值得检查的是,是否有什么东西在您的机器与DNS服务器之间的53端口(用于DNS流量的端口)上阻塞了IP流量。
您可以使用Test-NetConnection
cmdlet对端口53进行简单的连通性检查(注意不要与Test-Connection
cmdlet混淆):
如果连接成功,您将收到一个True的响应,如果失败,则为False。失败可能是由于DNS服务器上的网络或基于主机的防火墙。
0x0000232B RCODE_NAME_ERROR
此错误表示它能够找到DNS服务器,但未找到SRV记录。此错误需要进行更多故障排除。
确保您使用的是域的FQDN
看起来很简单,但请验证您输入的名称是否与您尝试加入的域的完全限定域名(FQDN)匹配。这只应该是一个域名,而不是服务器名。例如,使用carisbrookelabs.local而不是WIN-3467RQTHJH5.carisbrookelabs.local。
如果有任何疑问,请检查现有域客户端的域名。您可以通过在现有域客户端上运行此PowerShell命令来找到适当的域名。
如果尝试使用NETBIOS名称(contoso)而不是FQDN(contoso.local),计算机可能会找到该域,但Windows会将名称视为FQDN处理。
如果您键入一个NETBIOS名称而没有WINS基础设施,您将遇到我们试图解决的错误。始终使用完全限定的域名(FQDN),而不是NETBIOS名称。

检查DNS记录
在这一步中,您将再次使用Resolve-DNSName
。这次使用在尝试将您的计算机加入域时未检索到的确切DNS记录。从介绍中提到的dcdiag.txt文件,或您之前拍摄的错误文本的副本中复制并粘贴它。这将避免任何下划线和破折号的拼写错误。
您的命令应该类似于这样:
使用免费的Specops Password Auditor工具扫描您的Active Directory,识别与密码相关的漏洞,包括超过9.3亿个已知的被Compromised的密码。 立即下载!
如果您得到DNS名称不存在作为对此命令的响应,那么您的问题可能与DNS有关。
- 确保您正在使用正确的DNS服务器
- 确保相关记录尚未被删除
如果您对Resolve-DNSName _msdcs.<domainname>
获得积极响应,但从Resolve-DNSName _ldap._tcp.dc._msdcs.<domainname>
获得DNS名称不存在,那么记录可能丢失。
使用命令ipconfig /registerdns
在每个DC上重新注册域控制器的DNS记录。记录可能需要几分钟才能出现。
一旦您确认使用Resolve-DNSName
存在所需的DNS记录,那么您应该可以顺利进行。
摘要
在本文中,您了解了一些在解决“无法联系到活动目录域控制器”的错误时尝试的步骤。在这样的文章中不可能涵盖每种情况,但我希望这个过程对您有用并帮助您找到正确的路径!
进一步阅读
Source:
https://adamtheautomator.com/an-active-directory-domain-controller-could-not-be-contacted/