使用 ADSI 存取及運算元據

所有物件都有屬性。 所有 Active Directory 服務介面 (ADSI) COM 物件都有一或多個介面,這些介面具有方法,可擷取 COM 物件所代表之目錄物件的屬性。 有幾種方式可以從 物件讀取屬性:

  • 依名稱取得特定屬性: IADs 介面有兩種方法 IADs::GetIADs::GetEx 來讀取特定屬性。 每個 ADSI COM 物件都有 一個 IAD 介面
  • 取得指定的屬性清單: IDirectoryObject 介面具有 IDirectoryObject::GetObjectAttributes 方法,可讓您指定包含要讀取之屬性名稱的清單,並傳回包含所要求屬性值的結構陣列。
  • 列舉物件上的所有屬性: IADsPropertyList 介面可讓您列舉物件上的所有屬性。
  • 取得特殊屬性:自動化介面 (IAD*) 具有屬性方法,可讓您取得未儲存在 物件中的特殊屬性。 或者,屬性方法可讓您以與儲存的實際資料類型不同的資料格式取得物件屬性。 例如, IADs 介面具有屬性方法,例如 IADs::get_Name,它會擷取物件的相對辨別名稱 (RDN) ; IADs::get_Class,它會擷取物件的類別,以及擷取物件父系的 IADs::get_Parent

ADSI 可讓您在從目錄伺服器讀取屬性之後,在本機快取屬性。 這可讓您選擇從本機屬性快取讀取屬性,或直接從目錄伺服器擷取屬性。 ADSI 也有方法來更新快取,以及指定物件的所有屬性是快取的,還是只快取您指定的屬性。

擷取屬性之後,您會讀取其值。 屬性的資料類型取決於屬性的定義, (也稱為 Active Directory 架構中的屬性) 。 對於每個可以存在於 Active Directory 中的屬性類型,Active Directory 架構中有 attributeSchema 物件。 attributeSchema物件會定義屬性的特性。 其中一個特性是屬性的語法,可決定屬性值的資料類型。 如需詳細資訊,請參閱Active Directory 屬性的屬性特性和語法。

自動化介面 (IADs*) 傳回屬性值做為 VARIANT ,或代表屬性之 COM 物件上自動化介面的指標。 IDirectoryObjectIDirectorySearch介面會將屬性當做包含具型別屬性值或位元組字串之結構的指標傳回。 此外, IDirectoryObjectIDirectorySearch 會直接從目錄伺服器擷取屬性,而不是使用本機屬性快取。

本節說明下列主題: