Get Groups От OU использование DirectoryServices. AccountManagement

Я хотел бы использовать AccountManagement для списка всех групп в Организационной Единице.

Следующий отрывок работает с DirectoryServices, но я имел бы к instanciate GroupPrincipal с путем DirectoryEntry в результате (который чувствует себя подобно грязной фиксации).

DirectoryEntry root = new DirectoryEntry("LDAP://OU=Marketing,OU=Operations,OU=Applications,DC=mycompany,DC=local")
        DirectorySearcher ds = new DirectorySearcher(root);
        ds.Filter = "(objectCategory=group)";
        SearchResultCollection results = ds.FindAll();

У кого-либо есть идея?

Спасибо!

15
задан Per Noalt 18 December 2009 в 21:14
поделиться

1 ответ

Вы можете установить PrincipalContext для подразделения, в котором вы хотите начать поиск, и использовать класс PrincipalSearcher в System.DirectoryService .AccountManagement для выполнения того, что вам нужно, например:

PrincipalContext yourOU = new PrincipalContext(ContextType.Domain, "mycompany.local", "OU=Marketing,OU=Operations,OU=Applications,DC=mycompany,DC=local");
GroupPrincipal findAllGroups = new GroupPrincipal(yourOU, "*");
PrincipalSearcher ps = new PrincipalSearcher(findAllGroups);
foreach(var group in ps.FindAll())
{
  Console.WriteLine(group.DistinguishedName);
}
Console.ReadLine();
38
ответ дан 1 December 2019 в 01:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: