Как добавить подразделение из GlobalCatalog - PullRequest
0 голосов
/ 10 января 2011

Я могу сделать запрос для пользователей со следующим, но я хотел бы добавить дополнительный OU = Good к DN поиска. Возможно ли это без жесткого кодирования полного пути к ГХ?

Forest myForest = Forest.GetCurrentForest();
GlobalCatalog cat = myForest.FindGlobalCatalog();
DirectorySearcher srch = cat.GetDirectorySearcher();
srch.Filter = "(&(objectClass=user)(samaccountname=myuser))";
SearchResult result = srch.FindOne();

1 Ответ

1 голос
/ 10 января 2011

Вы можете попытаться получить DirectoryEntry для своего глобального каталога, а затем выполнить поиск в его свойстве .Children для нужного подразделения, а затем использовать это DirectoryEntry в качестве корневого элемента поиска - что-то вроде (не проверено), не иметь под рукой AD для тестирования):

Forest myForest = Forest.GetCurrentForest();
GlobalCatalog cat = myForest.FindGlobalCatalog();

DirectoryEntry deGlobal = cat.GetDirectoryEntry();

DirectoryEntry deYourOU = deGlobal.Children.Find("OU=Good");

DirectorySearcher srch = new DirectorySearcher(deYourOU);

Конечно, на самом деле, вы бы хотели добавить некоторую проверку ошибок (!= null и т. д.) в ваш код - но этобыло бы основным способом добраться до вашей OU (я надеюсь!)

...