6

Active Directory からすべてのユーザーを取得するために、LDAP クエリを使用して ADODB の recordset.open() コマンドを実行しています。

約 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 に答える