Active Directory: получить все «Security Group» - PullRequest
0 голосов
/ 06 сентября 2011

Я бы хотел, чтобы все группы "Группы безопасности" были доступны в Active Diectory.

Есть идеи?

Спасибо,

Ответы [ 2 ]

2 голосов
/ 06 сентября 2011

Поскольку вы работаете в .NET 3.5 или выше, вы можете использовать PrincipalSearcher и принцип «запрос по примеру» для выполнения поиска:

// create your domain context
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);

// define a "query-by-example" principal - here, we search for a GroupPrincipal 
// with the security group flag set
GroupPrincipal qbeGroup = new GroupPrincipal(ctx);
qbeGroup.IsSecurityGroup = true;

// create your principal searcher passing in the QBE principal    
PrincipalSearcher srch = new PrincipalSearcher(qbeGroup);

// find all matches
foreach(var found in srch.FindAll())
{
    // do whatever here - "found" is of type "Principal" - it could be user, group, computer.....          
}

Если вы этого не сделалиуже - абсолютно прочитайте статью MSDN Управление принципами безопасности каталогов в .NET Framework 3.5 , которая показывает, как наилучшим образом использовать новые функции в System.DirectoryServices.AccountManagement

0 голосов
/ 11 мая 2015

Попробуйте вот так

           DirectoryEntry ent1 = new DirectoryEntry("LDAP://" + _path, 
           "adminUser", "***********");

            DirectorySearcher dSearch = new DirectorySearcher(ent1);

            dSearch.Filter = "(&(objectClass=group))";

            dSearch.SearchScope = SearchScope.Subtree;

            SearchResultCollection results = dSearch.FindAll();
            List<string> groupNames = new List<string>();

            for (int i = 0; i < results.Count; i++)
            {
                DirectoryEntry de = results[i].GetDirectoryEntry();

                groupNames.Add(de.Name.Replace("CN=", ""));


            }

Это работает для меня :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...