DirectorySearcher不搜索整个目录

时间:2011-03-25 17:21:11

标签: .net active-directory

我正在使用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()) {
}

出于某种原因,这并不总是完全遍历树。如果我指定searchroot指向缺少的子树,它会导入该子树。

我错过了什么吗?

3 个答案:

答案 0 :(得分:2)

是否停止了1000名用户?我相信AD默认设置为仅返回1000个对象。

答案 1 :(得分:1)

如果在遇到问题行为的情况下SearchResultCollection的计数为1000,请尝试将DirectorySearcher上的PageSize属性设置为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()) { } 

答案 2 :(得分:1)

请参阅this similar question的已接受答案以获得解释。