我如何才能找出哪些服务器主机LDAP在我的Windows域?

我正在尝试开发一个应用程序(C#)来查询LDAP服务器。 我不知道实际的服务器命名查询 – 有没有办法find使用标准的Windows工具或.NET中的东西?

我也听说有服务器名称(ldap:// server /)的传言并不总是需要的,只要我在我的查询string中有dc = domain,dc = com,但是我到目前为止已经能够以这种方式使用它。

有小费吗?

谢谢

如果使用AD,则可以使用无服务器绑定来为默认域定位域控制器,然后使用LDAP:// rootDSE获取有关目录服务器的信息,如链接文章中所述。

AD在其DNS服务器中注册服务位置(SRV)资源logging,您可以查询该服务器以获取域中负责任的LDAP服务器的端口和主机名。

只要在命令行上试试这个:

C:\> nslookup > set types=all > _ldap._tcp.<<your.AD.domain>> _ldap._tcp.<<your.AD.domain>> SRV service location: priority = 0 weight = 100 port = 389 svr hostname = <<ldap.hostname>>.<<your.AD.domain>> 

(假设你的域名服务器是AD域名服务器,AD应该是正常工作的)

有关更多信息,请参阅Active Directory SRVlogging和Windows 2000 DNS白皮书 。

如果您所在的机器是AD域的一部分,则应将其名称服务器设置为AD名称服务器(或者希望使用DNS服务器path最终parsing您的AD域)。 使用dc = domain,dc = com的示例,如果在AD名称服务器中查找d​​omain.com,它将返回每个AD控制器的IP列表。 来自我公司的例子(w /域名改变了,但是这是一个真实的例子):

     mokey 0 / home / jj33> nslookup example.ad
    服务器:172.16.2.10
    地址:172.16.2.10#53

    非权威的回答:
    名称:example.ad
    地址:172.16.6.2
    名称:example.ad
    地址:172.16.141.160
    名称:example.ad
    地址:172.16.7.9
    名称:example.ad
    地址:172.19.1.14
    名称:example.ad
    地址:172.19.1.3
    名称:example.ad
    地址:172.19.1.11
    名称:example.ad
    地址:172.16.3.2

注意我实际上是从非AD计算机进行查询,但是我们的unix名称服务器知道要将我们的AD域(example.ad)的查询发送到AD DNS服务器。

我确信有一个超级爽快的方式来做到这一点,但我喜欢使用DNS方法,当我需要从非Windows服务器findLDAP服务器。