首页 > 解决方案 > ObjectClass=user 和 (&(sAMAccountType=805306368)(sAMAccountName=userName)) 有什么区别?

问题描述

在 Active Directory 中检索特定用户的所有组。我可以使用哪一种是高效过滤器吗?

标签: active-directoryldap

解决方案


根据您的 AD 环境运行的服务器版本,它不会产生任何影响。

查看 和objectClasssAMAccountName文档sAMAccountType。您会注意到它在这些页面上列出的一个属性是“已编入索引”。这会告诉您该属性是否在每个服务器版本中都被索引。sAMAccountName并且sAMAccountType一直被索引,并objectClass开始在 Windows Server 2008 中被索引。

如果您尝试查找特定帐户,则只需要sAMAccountName查询中的:

(sAMAccountName=userName)

这将执行得非常快,因为sAMAccountName已编入索引。您可能想要包含的唯一原因是,sAMAccountType或者objectClass如果您不知道它是对象的类型,并且您想确保您只获得一个用户帐户。

您提到要检索用户的所有组,因此请看一下我写的文章:查找所有用户的组。代码示例是 C#,但原则适用于任何语言。


推荐阅读