我基本上已经忘记了所有关于查询AD的知识,现在我需要检索一个特定部门(DAAS)中的用户列表。我已经确定有一个名为DAAS的组织单元。我只是想不出如何将列表限制在该OU上。
此字符串有效,但检索整个组织;
strQueryDL = "<LDAP://" & strDefaultNamingContext & ">;(&(objectCategory=person)(objectClass=user));distinguishedName;subtree"这个字符串不起作用;
strQueryDL = "<LDAP://" & strDefaultNamingContext & ">;(&(objectCategory=person)(objectClass=user)(OU=DAAS));distinguishedName;subtree"这个字符串也不起作用;
strQueryDL = "<LDAP://OU=DAAS" & strDefaultNamingContext & ">;(&(objectCategory=person)(objectClass=user));distinguishedName;subtree"那个该死的OU在这个字符串中属于哪里?
谢谢!数据中心
发布于 2019-01-31 09:15:36
条目不必包含OU属性,因为它在它们的DN中的某个位置。它们只需要在其中包含它们的RDN值。如果这没有任何意义,请参见below<\a>。
可以找到DN以ou=daas开头的所有子树的dn
strQueryDL = "<LDAP://" & strDefaultNamingContext & ">;(&(objectCategory=organizationalunit)(OU=DAAS));distinguishedName;subtree"一旦有了它,您就可以在有strDefaultNamingContext的地方使用该DN。
还有一个可扩展的搜索表单,可以指定对DN而不是属性执行搜索,但我不知道它在AD中是否有效。如果它在AD中工作,该表单将是:
strQueryDL = "<LDAP://" & strDefaultNamingContext & ">;(&(objectCategory=person)(objectClass=user)(OU:dn:=DAAS));distinguishedName;subtree"DN由一组DN组件组成。每个组件都是一个属性值对,并连接了一个=。您可以使用+连接同一级别的组件,但通常只需使用,将它们链接起来。同一级别的组件是无序的。从DN开始到,的位是RDN,必须在条目上表示。DN中的其他所有内容都是上级DN。如果该条目不是其树中的顶级条目,则上级DN必须由其自己的条目表示,但这些值都不需要在下级条目上。
这一切到底意味着什么是另一个问题,这个问题以前已经被问过很多次了,我正在查看不同的答案,以找出哪个答案最好……或者我是否应该提交一个答案。完成搜索后,我将用链接替换此文本。
发布于 2019-01-31 22:01:00
您的上一条路径是正确的,但可能只是缺少了OU后面的逗号(如果OU位于域的根位置)。
但是,如果您已经知道OU的distinguishedName,那么您可以直接使用它。关键是,字符串应该看起来像这样(假设OU的DN是domain.com/DAAS):
strQueryDL = "<LDAP://OU=DAAS,DC=domain,DC=com>;(&(objectCategory=person)(objectClass=user));distinguishedName;subtree"Ed Grimm的回答向您展示了如何查找OU本身,这将帮助您获得OU的DN (如果您还不知道)。
https://stackoverflow.com/questions/54451274
复制相似问题