如何使用远程 LDAP 客户端确定 Active Directory 服务器的*版本*?

Posted

技术标签:

【中文标题】如何使用远程 LDAP 客户端确定 Active Directory 服务器的*版本*?【英文标题】:How can I determine *version* of Active Directory server using a remote LDAP client? 【发布时间】:2014-04-03 17:07:27 【问题描述】:

我想通过 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 服务器,它没有返回任何内容。

【问题讨论】:

【参考方案1】:

What 的哪个版本?

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

-吉姆

【讨论】:

以上是关于如何使用远程 LDAP 客户端确定 Active Directory 服务器的*版本*?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Spring 安全性从 Active Directory LDAP 填充 LDAP 权限?

Java Active Directory LDAP - 使用密码哈希对用户进行身份验证

如何在 php 中使用 LDAP 从 Active Directory 搜索和更新用户数据?

LDAP:如何从 Active Directory 中获取所有用户和组

通过 LDAP 连接到 Active Directory

C# - 使用 LDAP 检索 Active Directory 的组成员