- PR -

DirectorySearcherの検索について

1
投稿者投稿内容
29jaga
会議室デビュー日: 2003/01/10
投稿数: 3
投稿日時: 2007-10-17 11:39
こんにちは。DirectorySearcherの検索について質問です。

現在、C#でActiveDirectoryの組織単位直下にいる
アカウントを検索する処理を作成しています。

しかし、組織単位直下には30万以上のユーザが存在します。

そのため検索処理にてSystem.OutOfMemoryExceptionが発生してしまい
検索が出来ない状態です。

検索できるよい方法はありますでしょうか。

--------------------------------------------------------------------------------
// オブジェクトを作成
DirectorySearcher searcher = new DirectorySearcher(ouEntry);

// ローカルキャッシュを無効
searcher.CacheResults = false;

// 一階層のみ検索
searcher.SearchScope = SearchScope.OneLevel;

// プロパティ名のみ取得
searcher.PropertyNamesOnly = true;

// ページ検索のサイズ指定
searcher.PageSize = 1000;

// 未設定
//searcher.SizeLimit

// フィルタ
searcher.Filter = "(objectClass=user)";

// 検索実行
SearchResultCollection searchResultCollection = searcher.FindAll();

--------------------------------------------------------------------------------

以上です。宜しくお願いいたします。
29jaga
会議室デビュー日: 2003/01/10
投稿数: 3
投稿日時: 2007-10-19 20:28
解決しました。

原因は、

引用:
// 検索実行
SearchResultCollection searchResultCollection = searcher.FindAll();


の直後に searchResultCollection.Count を行っていたためです。

どうやら、件数を取得するためにページ検索を行わず
全てのEntryを取得しているようでした。


以上です。
1

スキルアップ/キャリアアップ(JOB@IT)