Я предполагаю, что вы пытаетесь включить группы только из указанного c OU?
Вы правы, что вы не можете фильтровать по частичной distinguishedName
. Однако вы можете искать только в одном указанном c OU, изменив SearchRoot
, который вы передаете DirectorySearcher
. Например:
DirectoryEntry root = new DirectoryEntry("LDAP://OU=MyGroups,DC=example,DC=com");
Это DirectoryEntry
указывает на MyGroups
OU. Поэтому, если вы передадите это в DirectorySearcher
, он будет искать только в этом OU.
Вы также можете установить SearchScope
в OneLevel
, если не хотите, чтобы он осуществлял поиск дочерних OU. Subtree
- это значение по умолчанию, поэтому, если это то, что вам нужно, вам вообще не нужно его устанавливать.
Даже если вы хотите найти группы в нескольких подразделениях, вам лучше повторить поиск для каждой нужной OU вместо того, чтобы просить все и отбрасывать большинство результатов.