我可以仅使用 extensionAttribute4 创建 DirectorySearcher 过滤器吗?

Can I create a DirectorySearcher filter using only extensionAttribute4?

我正在使用 DirectorySearcher,我想获取所有未设置 extensionAttribute4 的 AD 用户。

我在这里使用这个 DirectorySearcher returns 所有 AD 用户,但我需要帮助,我如何才能改变这个 DirectorySearcher 的方式 returns 那些没有设置 extensionAttribute4 的 AD 用户. 任何帮助将不胜感激。

 using (DirectorySearcher oSearch = new DirectorySearcher(oSearchRoot))
 {
      oSearch.Filter = "(&(objectClass=user)(objectCategory=person)(!userAccountControl:1.2.840.113556.1.4.803:=2))";

      SearchResultCollection oResultCol = oSearch.FindAll();

}

您已经完成大部分内容了。这部分:

(objectClass=user)(objectCategory=person)

告诉它寻找用户对象。所以你想保留它。这部分:

(!userAccountControl:1.2.840.113556.1.4.803:=2)

告诉它查找没有在 userAccountControl 属性上设置第二位的帐户(第二位是一个标志,表示 "disabled")。

所以要找一个没有设置extensionAttribute4属性的账号,你还是用!操作符,但是你用的是通配符*,所以它表示 "this attribute is not set to anything".

因此您的最终过滤器将如下所示:

(&(objectClass=user)(objectCategory=person)(!extensionAttribute4=*))