Answers:
在将DNS配置为使用AD的DNS服务器的任何计算机上,请执行以下操作:
开始->运行-> nslookup
set type=all
_ldap._tcp.dc._msdcs.DOMAIN_NAME
将DOMAIN_NAME替换为实际的域名,例如example.com。在这里阅读更多。
_ldap._tcp.dc._msdcs.UnKnown
。未知是什么意思?
对于属于域成员的计算机,环境变量LOGONSERVER包含对当前用户进行身份验证的DC的名称。在多DC环境中,这显然不是全部DC,但是如果您想要的只是一种快速的方法来查找域控制器的名称,则可以从命令外壳中进行查找:
set l <enter>
将返回所有以“ L”开头的环境变量,包括DC的名称。
一个未提及的,超级容易且快速的选项是从命令提示符处运行此命令:
nltest /dclist:domainname
只需用您的域替换“域名”
您还可以运行其他一些选项以了解更多信息:
/dcname:domainname
获取域的PDC名称
/dsgetdc:domainname
具有其他信息的标志
尝试nltest /?
在您的提示下获取更多选项!:)
C:\> nltest /dclist:domainname Cannot find DC to get DC list from.Status = 1355 0x54b ERROR_NO_SUCH_DOMAIN The command completed successfully
这意味着什么?
在命令提示符下,运行gpresult
。你会得到:
这是running的示例输出gpresult
。您还可以指定gpresult /z
以获取更多详细信息。
gpresult /Z
输出很多数据。谢谢。
DNS和DHCP是检查的最佳方法,因为网络上可能存在由AD域控制器管理或充当域控制器的Unix / Linux计算机。
此外,考虑活动目录仅是Microsoft的Kerberos,LDAP,dhcp和dns版本。最好比第7+层更了解和调试较低层的内容。这是因为操作系统将执行这些相同的请求,并且每个协议的下划线RFC实际上在OSI级别而不是“在此处插入收藏的工具”级别运行。
可以再走一步,在dhcp中查询选项6、15和44,以获取域名,域名服务器和Wins / NetBIOS名称服务器。
然后使用dns检查_kerberos._tcp,_kpasswd._tcp,_LDAP._TCP.dc._msdcs和_ldap._tcp SRV记录:
nslookup -type=srv _kerberos._tcp.EXMAPLE.COM
nslookup -type=srv _kpasswd._tcp.EXAMPLE.COM
nslookup -type=srv _ldap._tcp.EXAMPLE.COM
nslookup -type=srv _ldap._tcp.dc._msdcs.EXAMPLE.COM
.EXAMPLE.COM ::= value returned from dhcp option-1
这分为三个区域,其中两个是协议支持的DNS-SD记录:
_kerberos._tcp
并且_kpasswd._tcp
(也在UNIX / Linux / OSX和某些Windows网络下_kadmin._tcp
)适用于kerberos_ldap._tcp
用于ldap(openldap,opendc,sun / oracle目录,ms ad)
_LDAP._TCP.dc._msdcs
是ldap的Microsoft唯一扩展,以映射域控制器。另存为GetDcNames.cmd
:
nslookup -type=any %userdnsdomain%.
运行方式:GetDcNames.cmd
。
(注意:“%userdnsdomain%。”中的结尾点是有意的。它阻止您的本地nslookup使用任何DNS搜索路径字符串。)
我整理了一个快速且肮脏的批处理文件,这样我就不必记住DNS域名和/或不必全部输入。(列表可能不完整。)
在加入域的计算机上工作。如果您的计算机未加入域,则必须手动将USERDNSDOMAIN设置为所需的域。
另存为TestAdDnsRecords.cmd
:
@setlocal
@REM Test AD DNS domains for presence.
@REM For details see: http://serverfault.com/a/811622/253701
nslookup -type=srv _kerberos._tcp.%userdnsdomain%.
nslookup -type=srv _kerberos._udp.%userdnsdomain%.
@echo .
nslookup -type=srv _kpasswd._tcp.%userdnsdomain%.
nslookup -type=srv _kpasswd._udp.%userdnsdomain%.
@echo .
nslookup -type=srv _ldap._tcp.%userdnsdomain%.
@echo .
nslookup -type=srv _ldap._tcp.dc._msdcs.%userdnsdomain%.
@echo .
nslookup -type=srv _ldap._tcp.pdc._msdcs.%userdnsdomain%.
@echo .
@REM Those next few lines here are forest specific:
@REM Change the next line your current domain is not also the forest root.
@SET "DNSFORESTNAME=%USERDNSDOMAIN%"
nslookup -type=srv _ldap._tcp.gc._msdcs.%DNSFORESTNAME%.
@echo .
nslookup -type=srv _gc._tcp.%DNSFORESTNAME%.
运行为TestAdDnsRecords.cmd | more
。有很多文本输出。