我正在使用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的原因是因为它这么慢与此相比。
答案 0 :(得分:2)
您必须在连接时设置页面大小,而不是Recordset
。
价: http://social.msdn.microsoft.com/Forums/en-US/vbgeneral/thread/e483c098-b2c1-4037-b9fb-3c882f3b14c4 http://support.microsoft.com/?kbid=243281
答案 1 :(得分:2)
讨论了1000限制here - 基本上,它已在服务器上修复,因此您需要与所有者交谈......