物件類別和物件類別
對象類別的每個實例都有多重值 objectClass 屬性,可識別對像是實例的類別,以及衍生該類別的所有結構化或抽象超級類別。 因此,用戶物件的 objectClass 屬性會識別 頂端、人員、organizationalPerson,以及 使用者 類別。 objectClass 屬性不包含清單中的輔助類別。 系統會在建立物件實例且無法變更時,設定 objectClass 值。
對象類別的每個實例也有一個 objectCategory 屬性,這是單一值屬性,其中包含對像是實例或其中一個超級類別之類別的辨別名稱。 建立物件時,系統會將其 objectCategory 屬性設定為其對象類別之 defaultObjectCategory属性所指定的值。 無法變更物件的 objectCategory 屬性。
如需詳細資訊,以及擷取物件 objectClass 屬性的程式代碼範例,請參閱 擷取 objectClass 屬性。
重要
在 Windows Server 2008 之前,不會編製索引 objectClass 屬性。 這是因為它有多個值,而且高度非唯一;也就是說,objectClass 屬性的每個實例都包含 頂端 類別。 這表示索引會非常大且無效。 若要找出指定類別的物件,請使用 objectCategory 屬性,這是單一值和索引。 如需在搜尋篩選中使用這些屬性的詳細資訊,請參閱 決定尋找內容。
對大多數類別而言,defaultObjectCategory 是類別 classSchema 對象的辨別名稱。 例如,organizationUnit 類別的 defaultObjectCategory 是 “CN=Organization-Unit,CN=Schema,CN=Configuration,<DC=forestroot>”。 不過,某些類別會將另一個類別稱為其 defaultObjectCategory。 這可讓查詢輕鬆地尋找相關物件的群組,即使它們屬於不同的類別也一樣。 例如,使用者、人員、組織人員,以及 連絡 類別都會識別其 defaultObjectCategory 屬性中的 人員 類別。 這可讓搜尋篩選條件,例如 (objectCategory=person) 來尋找具有單一查詢之所有類別的實例。 針對人員的查詢非常常見,因此這是簡單的優化。
如果您從結構類別建立子類別,最佳做法是將新類別的 defaultObjectCategory 值設定為與超級類別相同的辨別名稱。 這可讓標準 UI「尋找」子類別。