2009-06-29 33 views
6

Estoy haciendo un comando ADODB recordset.open() con una consulta LDAP para obtener todos los usuarios de mi Active Directory.Recordset solo devuelve 1000 registros

Hay alrededor de 2600 usuarios, pero solo recibo 1000 de ellos.

He intentado alterar las propiedades PageSize y MaxRecords del conjunto de registros sin suerte.

Sin materia extraña, esto es lo que el código es el siguiente (He hecho los detalles de la conexión genéricos):

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); 

Es, definitivamente, y no regresaron hasta 1000 registros, (He confirmado), y puedo accede a ellos muy bien

En caso de que ayude, la razón por la que no uso DirectorySearcher es porque es tan lento en comparación con esto.

Respuesta

2

El límite de 1000 se discutió here - en esencia, que se fija en el servidor, por lo que vamos a tener que hablar con el dueño ...

Uno de
+0

Estoy bastante seguro de que puede establecerlo a partir de la consulta; lo he hecho usando VBScript con el comando. Ejecutar antes. Es solo que no pude hacer que funcione. – ChristianLinnell

+0

Nos encontramos con este problema exacto, y terminamos necesitando usuarios de la página basados ​​en el apellido para que los conjuntos individuales fueran de menos de 1000. No es una solución ideal, pero funcionó alrededor de esta limitación. – SqlRyan

Cuestiones relacionadas