题 查找Active Directory域控制器的名称


如何在网络上找到AD域控制器的名称/ IP地址?


110
2017-10-25 14:02




DNS应完全用于此目的。 support.microsoft.com/kb/816587/en-us  petri.co.il/active_directory_srv_records.htm - Massimo
很短很甜 回答 来自SO的相关主题 - RBT


答案:


在配置为使用AD的DNS服务器的DNS的任何计算机上执行:

  • 开始 - >运行 - > nslookup 

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

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


132
2017-10-25 14:31



在上面的答案中,输入set type = all(在nslookup中)允许您查看DNS SRV记录。您也可以输入“set type = SRV”,SRV记录是AD在网络上宣传自己的方式 - Les
我跑了然后跑了 _ldap._tcp.dc._msdcs.UnKnown。是什么 未知 意思? - jp2code


对于作为域成员的计算机,环境变量LOGONSERVER包含对当前用户进行身份验证的DC的名称。这显然不是多DC环境中的所有DC,但是如果您想要的是从命令shell中快速查找域控制器的名称:

set l <enter>

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


59
2017-10-25 15:00



为简单起见+1。获取DC的名称后,只需ping它即可获得IP。 - Bigbio2002
简单的是,但如果你有一个你感兴趣的网络的VPN连接,LOGONSERVER不会给你。在我能想到的所有情况下,接受的答案将为您提供合适的服务器。 - Les
它并不完美,但有时候知道如何快速做好事也很重要。它也无法进行本地登录,但我从未通过VPN检查过,很高兴知道,谢谢。 - Helvick


一个未提及,超级简单,快速的选项是从命令提示符运行:

nltest /dclist:domainname

只需将“域名”替换为您的域名即可

您还可以运行其他一些选项以了解更多信息:

/dcname:domainname 获取域的PDC名称 /dsgetdc:domainname 有其他信息的标志

尝试 nltest /? 在你的提示中获得更多选择! :)


25
2017-09-02 20:59



C:\> nltest /dclist:domainname Cannot find DC to get DC list from.Status = 1355 0x54b ERROR_NO_SUCH_DOMAIN The command completed successfully   那是什么意思? - jp2code
将域名替换为您的域名 - Abraxas
哦。这就是我认为这将为我找到的。 - jp2code


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

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

19
2018-01-08 22:46





从命令提示符处运行 gpresult。你会得到:

  • 一般工作站和域信息
  • 对于这两个 电脑 和 用户
    • AD中的专有名称以及应用该策略的DC
    • 应用组策略对象
    • 安全组列表的成员

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


17
2018-01-04 02:53



哇, gpresult /Z 输出大量数据。谢谢。 - friederbluemle


DNS和DHCP是检查的最佳方式,因为在AD域控制器管理的网络上可以有Unix / Linux机器,或者充当域控制器。

另外,考虑活动目录只不过是微软的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唯一扩展。

7
2017-09-01 16:17





原油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。有很多文本输出。

来源


0
2017-10-27 10:01