查找Active Directory域控制器的名称


Answers:


147

在将DNS配置为使用AD的DNS服务器的任何计算机上,请执行以下操作:

  • 开始->运行-> nslookup

    set type=all
    _ldap._tcp.dc._msdcs.DOMAIN_NAME
    

DOMAIN_NAME替换为实际的域名,例如example.com在这里阅读更多。


在以上答案中,输入set type = all(在nslookup中)可让您查看DNS SRV记录。您也可以键入“ set type = SRV”,SRV记录是AD在网络上进行广告宣传的方式
Les

我跑了,得到了_ldap._tcp.dc._msdcs.UnKnown未知是什么意思?
jp2code

64

对于属于域成员的计算机,环境变量LOGONSERVER包含对当前用户进行身份验证的DC的名称。在多DC环境中,这显然不是全部DC,但是如果您想要的只是一种快速的方法来查找域控制器的名称,则可以从命令外壳中进行查找:

set l <enter>

将返回所有以“ L”开头的环境变量,包括DC的名称。


5
为简单起见,+ 1。获取DC的名称后,只需对其进行ping操作即可获取IP。
Bigbio2002

2
很简单,是的,但是如果您对感兴趣的网络有VPN连接,则LOGONSERVER不会为您提供。在我能想到的所有情况下,可接受的答案都会为您提供正确的服务器。
莱斯

1
这不是完美的,但是有时候知道如何快速完成好事情也很重要。本地登录也失败,但是我从未通过VPN进行过检查,很高兴知道,谢谢。
赫尔维克

35

一个未提及的,超级容易且快速的选项是从命令提示符处运行此命令:

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 这意味着什么?
jp2code

1
将域名替换为您的域名
Abraxas

哦。那就是我认为这将为我找到的。
jp2code

这对我来说超级有用,因为[Bash#host -t srv _ldap._tcp.MYCOMPANY]表示找不到域。[CMD:\> nltest / dclist:MYCOMPANY]告诉我域名是corp.ad.mycompany.com,然后我就可以使用该信息使其他命令正常工作。[Bash#host -t srv _ldap._tcp.corp.ad.mycompany.com]然后工作了
Neokyle

21

这将在Powershell中返回最接近的域控制器:

Import-Module ActiveDirectory
(Get-ADDomainController -DomainName <Domain FQDN> -Discover -NextClosestSite).HostName

17

在命令提示符下,运行gpresult。你会得到:

  • 常规工作站和域信息
  • 对于计算机用户
    • AD中的专有名称以及应用该策略的DC
    • 应用的组策略对象
    • 成员所属的安全组列表

这是running的示例输出gpresult。您还可以指定gpresult /z以获取更多详细信息。


5
哇,gpresult /Z输出很多数据。谢谢。
Friederbluemle 2014年

10

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唯一扩展,以映射域控制器。

2

原油CMD

只要找到DC名称

另存为GetDcNames.cmd

nslookup -type=any %userdnsdomain%.

运行方式:GetDcNames.cmd

(注意:“%userdnsdomain%。”中的结尾点是有意的。它阻止您的本地nslookup使用任何DNS搜索路径字符串。)

查找更多与AD相关的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。有很多文本输出。

资料来源

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.