Как получить список всех членов и (членов) подгрупп в пределах определенной группы/отдела с использованием DirectorySearcher и Filter/PropertiesToLoad?Найти член и член подгруппы
На данный момент я могу заставить группу вернуть всех своих членов. Однако в группе есть подгруппы, и я не могу добраться до членов в этих подгруппах.
Это то, что я до сих пор:
DirectoryEntry entry = null;
entry = new DirectoryEntry("LDAP://DC=au,DC=company,DC=com", null, null, AuthenticationTypes.Secure);
try
{
DirectorySearcher ouSearch = new DirectorySearcher(entry);
ouSearch.Filter = "(&(objectClass=user)(objectCategory=person)(displayName=*" + username + "*)" +
"(|" +
"(memberOf=CN=my department,OU=ADC-Distribution Groups,DC=au,DC=company,DC=com)" +
")" +
")";
ouSearch.PropertiesToLoad.Add("samAccountName");
ouSearch.PropertiesToLoad.Add("displayName");
ouSearch.PropertiesToLoad.Add("memberOf");
ouSearch.SearchScope = SearchScope.Subtree;
SearchResultCollection allOUS = ouSearch.FindAll();
Любая помощь оценили!
Спасибо так много Jakob .... Я искал решение в течение нескольких дней, и это именно то, что я после. Большое спасибо за ваш ответ! –
Знаете ли вы, есть ли какая-то фильтрация имени, которую я могу использовать для класса GroupPrincipal? Мой getMembers() возвращает более 1 тыс. Членов, и это занимает много времени - мне нужно прокрутить каждый элемент и проверить, совпадает ли их имена с определенным шаблоном. Атм, это займет 10 секунд, чтобы пройти через каждый! –
@viv_acious: Я не думаю, что вы можете фильтровать этот путь. Но почему бы не выполнить поиск пользователей, использующих PrincipalSearcher, вместо использования GetMembers? –