Могу ли я создать фильтр DirectorySearcher, используя только extensionAttribute4? - PullRequest
0 голосов
/ 10 апреля 2020

Я использую DirectorySearcher, и я хочу, чтобы все пользователи AD, которые не установили extensionAttribute4.

Здесь я использую этот DirectorySearcher, который возвращает всех пользователей AD, но мне нужна помощь, как я могу это изменить DirectorySearcher таким образом, что он возвращает тех пользователей AD, которые не установили extensionAttribute4. Любая помощь будет высоко оценена.

 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();

}

1 Ответ

0 голосов
/ 10 апреля 2020

Вы уже большую часть пути туда. Эта часть:

(objectClass=user)(objectCategory=person)

говорит ему искать объекты пользователя. Итак, вы хотите сохранить это. Эта часть:

(!userAccountControl:1.2.840.113556.1.4.803:=2)

говорит ему найти учетные записи, для которых не установлен второй бит в атрибуте userAccountControl (второй бит - это флаг, означающий «отключен»).

Таким образом, чтобы найти учетную запись, для которой не установлен атрибут extensionAttribute4, вы по-прежнему используете оператор !, но используете его с оператором подстановочного знака *, так что это означает, что «для этого атрибута ничего не установлено» .

Итак, ваш последний фильтр будет выглядеть так:

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