物件類別和物件類別

對象類別的每個實例都有多重值 objectClass 屬性,可識別對像是實例的類別,以及衍生該類別的所有結構化或抽象超級類別。 因此,用戶物件的 objectClass 屬性會識別頂端人員組織人員和用戶類別。 objectClass 屬性不包含清單中的輔助類別。 系統會在建立物件實例且無法變更時設定 objectClass 值。

對象類別的每個實例也都有 objectCategory 屬性,這是單一值屬性,其中包含對象是實例或其超級類別之一的類別辨別名稱。 建立物件時,系統會將其 objectCategory 屬性設定為其對象類別之 defaultObjectCategory 屬性所指定的值。 無法變更物件的 objectCategory 屬性。

如需詳細資訊,以及擷取物件 objectClass 屬性的程式代碼範例,請參閱擷取 objectClass Attribute。

重要

在 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「尋找」子類別。