6

我正在使用 LDAP 查询执行 ADODB recordset.open() 命令,以从我的 Active Directory 中获取所有用户。

大约有 2600 个用户,但我只收回了其中的 1000 个。

我尝试更改记录集的 PageSize 和 MaxRecords 属性,但没有成功。

没有多余的东西,这就是代码的样子(我已经使连接细节通用):

ADODB.Connection conn = new ADODB.Connection();
ADODB.Recordset rs = new ADODB.Recordset();
rs.MaxRecords = 10000;
rs.PageSize = 10000;
conn.Open("Active Directory Provider","","",0);
string query = "SELECT cn FROM 'LDAP://OU=User Accounts,OU=TopLevel,DC=domainName,DC=local' where samAccountName = '*'"

rs.Open(query, conn, ADODB.CursorTypeEnum.adOpenKeyset, ADODB.LockTypeEnum.adLockOptimistic, -1);

它肯定只返回 1000 条记录,(我已经确认),我可以很好地访问它们。

如果它有帮助,我不使用 DirectorySearcher 的原因是因为它与此相比太慢了。

4

2 回答 2

2

您必须在连接时设置页面大小,而不是在Recordset.

参考: http: //social.msdn.microsoft.com/Forums/en-US/vbgeneral/thread/e483c098-b2c1-4037-b9fb-3c882f3b14c4 http://support.microsoft.com/?kbid=243281

于 2009-06-29T04:08:42.173 回答
2

此处讨论了 1000 的限制- 本质上,它在服务器上是固定的,因此您需要与所有者交谈...

于 2009-06-29T04:11:43.267 回答