我正在使用Java从客户端服务器查询Active Directory。
我的基本DN是
CN=GGM-FOX-MANAGER,OU=ClaimRoles,OU=Groups,OU=ENT,DC=ad,DC=myhostname,dc=com因此,我尝试使用以下查询从上面提到的组中提取所有用户
(objectClass=*)返回了如此多的键和值。
例如:
displayName: GGM-FOX-MANAGER
member: CN=100,OU=Employees,OU=Shopping,DC=RB,DC=ad,DC=myhostname,dc=com;and more users separated by ;
objectClass: top;group
objectCategory: CN=Group,Cn=Schema,CN=Configuration,DC=ad,DC=myhostname,dc=com
cn=GGM-FOX-MANAGER
distinguishedName=CN=GGM-FOX-MANAGER,OU=ClaimRoles,OU=Groups,OU=ENT,DC=ad,DC=myhostname,dc=com
etc我如何编写查询来只提取成员,而不是获取上面的示例数据?其次,如何使用query来了解成员的状态,是否处于活动状态?
使用Java
发布于 2020-07-03 00:03:55
每当进行LDAP查询时,您都可以告诉它您希望它为每个结果返回哪些属性。如果您不指定任何内容,它将为您提供所有内容。您可以告诉它只返回member属性。
要查找每个成员的信息,必须遍历member属性的每个值,该属性提供每个成员的唯一判别名(DN)。然后,您可以绑定到该用户对象并查看该对象的属性。
如果您想知道帐户是否已启用,则需要查看userAccountControl属性的第二部分。在Java语言中,使用& 2来获取userAccountControl的值。如果结果为2,则它将被禁用。如果结果为0,则表示已启用。我不是Java开发人员,但是您可以找到一个示例in this answer。
https://stackoverflow.com/questions/62611914
复制相似问题