搜尋目錄

搜尋是最常見的目錄工作。雖然 DirectoryEntry 物件可用來執行簡單搜尋,例如尋找執行簡單操作 (如繫結至網域) 所需的單一目錄物件,但它卻無法執行複雜的搜尋或傳回大量的結果集。

若要新增完備的搜尋作業至應用程式,請使用 DirectorySearcher 物件。DirectorySearcher 物件提供一組屬性和方法,可讓您選取多個搜尋準則,如搜尋範圍、篩選、萬用字串、結果集的頁面大小及排序。

本節包括下列主題:

在執行搜尋之前,您必須熟悉 DirectorySearcher 物件與目錄搜尋概念。若您先前使用 ADSI,則您可能已經使用過 IDirectorySearch COM 介面。DirectorySearcher 物件是 IDirectorySearch 的包裝函式。如需有關此介面的詳細資訊,請參閱<IDirectorySearch>主題,此主題位於 MSDN Library,網址為 https://go.microsoft.com/fwlink/?LinkID=27252 (本頁面可能為英文)。

若要執行搜尋,應用程式必須先繫結到目錄的根點上。為獲得最佳效能,請選取將提供最小結果集的點。設定 DirectorySearcher 以提供下列用於搜尋操作的參數:

  • 可將搜尋範圍縮小至特定物件類型的搜尋篩選
  • 要搜尋的物件範圍
  • 隨物件傳回的屬性清單

在設定此搜尋時,您必須決定要搜尋何種物件類型,然後為該物件類型建立搜尋篩選。DirectorySearcher 物件提供 Filter 屬性,此屬性需要使用 LDAP 語法的字串以做為篩選字串。

接著,您必須決定篩選範圍是應用程式所繫結的節點、一個層級或子樹狀目錄。SearchScope 屬性可用來設定此參數。最後,您必須決定隨物件傳回的屬性名稱與值。

您可以選擇性地使用 DirectorySynchronization 物件來執行目錄同步搜尋,它可讓應用程式執行搜尋、逐一查看所有結果、執行與搜尋無關的其他功能或使其暫時停用。應用程式最後將再度執行相同搜尋,以擷取該搜尋的任何新結果。依此方式,應用程式可追蹤符合搜尋準則的 Active Directory 網域服務更新。

下圖說明限定為 Sales 容器的搜尋。

DirectorySearcherSearchResult 物件中傳回單一結果及其屬性。結果集以 SearchResultCollection 的形式傳回,這是搜尋傳回之所有 SearchResult 物件的容器。

DirectorySearcher 提供下列兩種執行搜尋的方法:

如需建立基本搜尋應用程式的詳細資訊與程序,請參閱 MSDN Library (網址為 https://go.microsoft.com/fwlink/?LinkID=27252 (本頁面可能為英文)) 中的搜尋 Active Directory 階層主題 (本頁面可能為英文)。

請參閱

參考

System.DirectoryServices
DirectoryEntry
DirectorySearcher
SearchScope
DirectorySynchronization

概念

System.DirectoryServices 使用者入門

Send comments about this topic to Microsoft.

Copyright © 2007 by Microsoft Corporation.All rights reserved.