検索スコープの設定
検索のパフォーマンスを向上させるには、検索スコープを 1 つのオブジェクトまたはオブジェクトのサブセットに制限します。このタスクのために、DirectorySearcher には、SearchScope プロパティがあります。
検索スコープは、次の 3 つのいずれかに設定できます。
- Base. 連結オブジェクトを検索し、検索条件に一致した連結オブジェクトのみを返します。たとえば、ドメインにバインドする場合、そのドメイン内のすべてのものが検索されますが、返されるのは連結オブジェクトのみです。
- OneLevel. 連結オブジェクトと同じレベルに含まれるすべてのオブジェクトを検索します。たとえば、グループにバインドする場合、そのグループと同じレベルのすべてのグループまたは他のオブジェクトが検索されます。
- Subtree. ベース オブジェクトも含めて、連結オブジェクトのサブツリーに含まれるすべてのオブジェクトを検索します。たとえば、サーバーにバインドする場合、階層内でそのサーバーと同じかその下のレベルにあるすべてのオブジェクトが検索されます。この値は既定値です。DirectorySynchronization オブジェクトでディレクトリ同期検索を実行する場合、アプリケーションでは Subtree スコープの指定が必要です。
次の図は、これらのスコープそれぞれがドメイン階層内のどの部分に当たるのかを示しています。
次の C# コード例は、SearchScope プロパティを使用してサブツリーを検索する方法を示しています。
DirectoryEntry entry = new DirectoryEntry("LDAP://CN=users,DC=fabrikam,DC=com");
DirectorySearcher mySearcher = new DirectorySearcher(entry);
mySearcher.SearchScope = SearchScope.Subtree;
mySearcher.Filter = "(&(objectClass=user)(anr=test*))";
SearchResultCollection ResEnt = mySearcher.FindAll();
{
// Handle results.
}
// Handle exceptions.
関連項目
リファレンス
System.DirectoryServices
DirectorySearcher
SearchScope
DirectorySynchronization
概念
Send comments about this topic to Microsoft.
Copyright © 2007 by Microsoft Corporation. All rights reserved.