容器和離開
Active Directory Domain Services 包含物件的階層,除了目錄階層的根目錄之外,每個物件實例都包含在其他物件中。 此階層的結構比目錄和檔案的文件系統更有彈性。 相反地,規則,在 Active Directory 架構中,決定哪些物件類別可以包含哪些其他物件類別的實例。 例如,User 物件類別的預設架構定義包含 組織單位 和 Container 物件類別:也就是說,User 對象實例的可能父物件或容器。 這表示 組織單位 物件可以包含 User 物件,但是 User 物件不能包含另一個 User 物件,除非 User 類別的架構定義已變更。
除了架構對象,也就是說,classSchema 或 attributeSchema 定義可存在於伺服器樹系中的類別和屬性的物件,Active Directory Domain Services 中的任何物件可能是容器。 具體來說,出現在 possSuperiors 或 systemPossSuperiors 物件類別定義屬性的任何物件類別都可能是容器。 如需預先定義物件類別容器的詳細資訊,請參閱 Active Directory Domain Services 參考。 您可以透過程式設計方式系結至抽象架構,並使用 IADsClass::get_Containment 或 IADsClass::get_PossibleSuperiors 方法來取得指定類別可包含或包含的類別。 如需詳細資訊,請參閱 讀取抽象架構。 您也可以讀取任何物件實例的 possibleInferiors 屬性,以判斷物件可包含的物件類別。 請注意,possibleInferiors 是建構的屬性,這表示它是從 possSuperiors/systemPossSuperiors 其他類別定義的值計算,而且實際上不會儲存在目錄中。
請注意,Active Directory 架構會定義 Container 類別。 如先前所述,物件不一定是容器 容器 類別的實例。 另外還有一個 Leaf 類別,雖然這個類別的子類別通常不是容器,但沒有理由不能。
最後,您可以在與對象類別相關聯的顯示規範上設定旗標,以指出使用者介面應該一律將類別的實例顯示為離開,而不是容器。 這有助於防止使用者介面被太多容器所雜亂。 如需詳細資訊,請參閱 將容器視為分葉節點。