我想以编程方式区分 LDAP 上的不同类型的服务,以适应它们的怪癖。
是否有我可以依赖的特定实体/记录/字段来区分 Windows Server 2003 Active Directory 服务器、Windows Server 2008 AD 服务器和 Windows Server 2012 AD 服务器?
注意:
在 question about using javax.naming with AD 中出于类似的目的,查询
ldapsearch -h HOST -b " " -s base objectclass=*
提议。对于我测试的至少一台 AD 服务器,它不返回任何内容。
最佳答案
什么版本?
Microsoft Active Directory 不在 ROOTDSE 中提供 venderVersion。
您可以将“forestFunctionality”和/或“domainFunctionality”作为整数返回。
要查找所有 DC 及其版本,请使用此查询:
(&(&(&(&(samAccountType=805306369)(primaryGroupId=516))(objectCategory=computer)(operatingSystem=*))))
哦,对于 Microsoft Active Directory,您需要经过身份验证的连接才能读取 rootDSE。
我们在这里详细讨论这个问题:http://ldapwiki.willeke.com/wiki/Determine%20LDAP%20Server%20Vendor#section-Determine+LDAP+Server+Vendor-ActiveDirectory
-吉姆
关于active-directory - 如何使用远程 LDAP 客户端确定 Active Directory 服务器的*版本*?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22844404/