Active Directory не позволяет вам искать частичное совпадение на distinguishedName
.Если в запросе указано distinguishedName
, это может быть только точное совпадение.
Если вы хотите искать только определенные OU, вам потребуется:
- Поиск одногоOU, установив
SearchRoot
для OU, а не для домена.Вы также можете установить SearchScope
на SearchScope.OneLevel
, чтобы не выполнять поиск в подразделениях, если хотите.Повторите поиск для каждого OU, который вы хотите включить. - Найдите самый верхний OU с нужными вам результатами, просматривайте результаты и отбрасывайте результаты в неактивном OU, просматривая
distinguishedName
(поскольку у вас уже есть результаты на данный момент, distinguishedName
- это просто строка, с которой вы можете делать все, что захотите, включая частичное совпадение).
Я бы порекомендовал # 2, поскольку это означаетодин поиск против AD вместо нескольких.Это будет быстрее.
И да, вы можете использовать userAccountControl
в качестве фильтра для исключения отключенных учетных записей, но это зависит от того, можете ли вы исключить отключенные учетные записи, которые могут отсутствовать в неактивном подразделении.или включая включенные учетные записи, которые могли оказаться в неактивном подразделении.