ObjectClass=user 和 (&(sAMAccountType=805306368)(sAMAccountName=userName)) 有什么区别?
What is the difference between ObjectClass=user and (&(sAMAccountType=805306368)(sAMAccountName=userName))?
检索 Active Directory 中特定用户的所有组。我可以使用哪个是高效过滤器?
根据您的 AD 环境 运行 所在的服务器版本,不会有任何区别。
查看 objectClass
, sAMAccountName
and sAMAccountType
的文档。您会注意到在这些页面上列出的 属性 是 "Is Indexed"。这会告诉您该属性是否已在每个服务器版本中编制索引。 sAMAccountName
和 sAMAccountType
一直被编入索引,objectClass
在 Windows Server 2008 中开始被编入索引。
如果您要查找特定帐户,则只需要查询中的 sAMAccountName
:
(sAMAccountName=userName)
这将执行得非常快,因为 sAMAccountName
已编入索引。您可能想要包含 sAMAccountType
或 objectClass
的唯一原因是您不知道它是什么类型的对象,并且您想要确保您只获得一个用户帐户。
您提到要检索用户的所有组,因此请看一下我写的关于此的文章:Finding all of a user’s groups。代码示例是 C#,但原理适用于任何语言。
检索 Active Directory 中特定用户的所有组。我可以使用哪个是高效过滤器?
根据您的 AD 环境 运行 所在的服务器版本,不会有任何区别。
查看 objectClass
, sAMAccountName
and sAMAccountType
的文档。您会注意到在这些页面上列出的 属性 是 "Is Indexed"。这会告诉您该属性是否已在每个服务器版本中编制索引。 sAMAccountName
和 sAMAccountType
一直被编入索引,objectClass
在 Windows Server 2008 中开始被编入索引。
如果您要查找特定帐户,则只需要查询中的 sAMAccountName
:
(sAMAccountName=userName)
这将执行得非常快,因为 sAMAccountName
已编入索引。您可能想要包含 sAMAccountType
或 objectClass
的唯一原因是您不知道它是什么类型的对象,并且您想要确保您只获得一个用户帐户。
您提到要检索用户的所有组,因此请看一下我写的关于此的文章:Finding all of a user’s groups。代码示例是 C#,但原理适用于任何语言。