使用ADSI存取及操作數據
所有物件都有屬性。 所有 Active Directory 服務介面 (ADSI) COM 物件都有一或多個介面,其中包含方法,可擷取 COM 物件所代表之目錄對象的屬性。 您可以從物件讀取屬性的方式有很多種:
- 依名稱取得特定屬性:IADs 介面有兩種方法 IADs::Get 和 IADs::GetEx 以讀取特定屬性。 每個 ADSI COM 物件都有 IADs 介面。
- 取得指定的屬性清單:IDirectoryObject 介面具有 IDirectoryObject::GetObjectAttributes 方法,可讓您指定要讀取之屬性名稱的清單,並傳回包含所要求屬性值之結構數位。
- 列舉物件上的所有屬性: IADsPropertyList 介面可讓您列舉物件上的所有屬性。
- 取得特殊屬性:自動化介面 (IADs*) 具有屬性方法,可讓您取得未儲存在物件中的特殊屬性。 或者,屬性方法可讓您以與儲存的實際數據類型不同的數據格式取得物件屬性。 例如,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 物件上自動化介面的指標。 IDirectoryObject 和 IDirectorySearch 介面會將屬性當做包含具型別屬性值或位元組位元串之結構的指標傳回。 此外, IDirectoryObject 和 IDirectorySearch 會直接從目錄伺服器擷取屬性,而不是使用本機屬性快取。
本節描述下列主題: