У меня проблемы с этим кодом, особенно с PrincipalSearcher.Я пытаюсь получить список всех групп, связанных с определенным подразделением.
Я пытаюсь просто вернуть группы «Безопасность» во всех областях действия групп, кроме групп рассылки.
Проблема, с которой я столкнулся, заключается в возврате этих встроенных групп в дополнение ктот, который я собираюсь вернуть.
HelpServicesGroup TelnetClients Администраторы Пользователи Гости Операторы печати Операторы резервного копирования Replicator Пользователи удаленного рабочего стола Конфигурация сети Операторы Монитор производительности Производительность Журнал пользователей Распределенные пользователи COM Пользователи домена Компьютеры Контроллеры доменов Администраторы предприятия Администраторы Cert PublishersАдминистраторы домена. Пользователи домена. Гости домена. Создатели групповой политики. Владельцы серверов RAS и IAS. Операторы серверов. Операторы учетных записей Совместимость с пре-Windows 2000. Входящие доверительные леса. Группа авторизации доступа Windows. Терминальные серверы. Лицензионные серверы. DnsAdmins DnsUpdateProxy.если, возможно, область действия неверна или, возможно, я пропускаю какую-то фильтрацию.
Соответствующий сегмент кода:
public static ArrayList GetAllGroups()
{
var myItems = new ArrayList();
var ctx = new PrincipalContext(ContextType.Domain,"MyOU");
// define a "query-by-example" principal - here, we search for a GroupPrincipal
var qbeGroup = new GroupPrincipal(ctx);
// create your principal searcher passing in the QBE principal
var srch = new PrincipalSearcher(qbeGroup);
// find all matches
foreach (Principal found in srch.FindAll())
{
var foundGroup = found as GroupPrincipal;
if (foundGroup != null)
{
myItems.Add(foundGroup.Name);
}
}
return myItems;
}
Как сделать так, чтобы исключить встроенные группы?
Любая помощь с этим будет принята с благодарностью.
Спасибо!