DirectorySearcher не ищет весь каталог - PullRequest
0 голосов
/ 25 марта 2011

Я использую System.DirectoryServices.DirectorySearcher для обхода Active Directory для пользователей. В большинстве случаев это работает нормально. Код выглядит примерно так:

Ldapconnection conn = CreateConnection(...);
System.DirectoryServices.DirectorySearcher searcher = new System.DirectoryServices.DirectorySearcher();
searcher.SearchScope = System.DirectoryServices.SearchScope.Subtree;

foreach (System.DirectoryServices.SearchResult result in searcher.FindAll()) {
}

По некоторым причинам, это не всегда полностью пересекает дерево. Если я указываю корень поиска, чтобы он указывал на отсутствующее поддерево, оно импортирует это поддерево.

Я что-то упустил?

Ответы [ 3 ]

2 голосов
/ 25 марта 2011

Останавливается ли он на 1000 пользователей? Я считаю, что AD по умолчанию настроен так, чтобы возвращать только 1000 объектов.

1 голос
/ 25 марта 2011

См. Принятый ответ на этот похожий вопрос для объяснения.

1 голос
/ 25 марта 2011

Если счетчик SearchResultCollection равен 1000 в тех случаях, когда у вас возникают проблемы с поведением, попробуйте установить для свойства PageSize в DirectorySearcher значение 1000.

Ldapconnection conn = CreateConnection(...); 
DirectorySearcher searcher = new System.DirectoryServices.DirectorySearcher();
searcher.SearchScope = System.DirectoryServices.SearchScope.Subtree;
searcher.PageSize = 1000;

foreach (System.DirectoryServices.SearchResult result in searcher.FindAll()) { } 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...