对象类的特征
Active Directory 域服务中的每个对象类都由架构容器中的 classSchema 对象定义。 classSchema 对象的属性指定类的特征,例如:
- 类标识符:类具有多个标识符,包括 ldapDisplayName,LDAP 客户端使用这些标识符来标识搜索筛选器中的类,schemaIDGUID,这些标识符用于安全描述符来控制对类的访问。
- 可能的属性:对象类定义包括可在类实例上设置的必需属性和可选属性的列表。
- 可能的父级:除目录层次结构的根目录外,每个对象实例都只有一个父级。 对象类定义包括可能父项的列表,即可以包含类实例的对象类。
- 超级类和辅助类:每个对象类(顶部除外)都派生自另一个类。 类从类层次结构中的类继承可能的属性和可能的父级。 类还可以具有任意数量的辅助类,从中继承可能的属性列表。 有关详细信息,请参阅 Active Directory 架构 中的类继承。
下表列出了 lDAPDisplayName 和 classSchema 对象的键属性的说明。 有关详细信息,以及 classSchema 对象的必需属性和可选属性的完整列表,请参阅 classSchema。
lDAPDisplayName | 描述 |
---|---|
cn | Active Directory 域服务中的每个对象都有一个命名属性,其相对可分辨名称(RDN)从中形成。 classSchema 对象的命名属性 cn(Common-Name)。 分配给 cn 的值是对象类作为其 RDN 的值。 例如,organizationUnit 对象类的 cn 是 Organization-Unit,该对象类以 CN=Organization-Unit 的可分辨名称显示。 cn 在架构容器中必须是唯一的。 |
lDAPDisplayName | LDAP 客户端(如 ADSI LDAP 提供程序)用来引用类的名称,例如,在搜索筛选器中指定类。 类的 lDAPDisplayName 在架构容器中必须是唯一的,这意味着它必须在所有 classSchema 中是唯一的,attributeSchema 对象。 有关为新类撰写 cn 和 lDAPDisplayName 的详细信息,请参阅 命名属性和类。 |
schemaIDGUID | 存储为八进制字符串的 GUID。 此 GUID 唯一标识类。 此 GUID 可用于访问控制条目,以控制对此类对象的访问。 有关详细信息,请参阅 对子对象作设置权限。 创建 classSchema 对象时,如果未指定,Active Directory 服务器将生成此值。 如果创建新类,请为每个类生成自己的 GUID,以便扩展的所有安装都使用相同的 schemaIDGUID 来引用该类。 |
adminDisplayName | 用于管理工具的类的显示名称。 如果在创建类时未指定 adminDisplayName,则系统会使用 Common-Name 值作为显示名称。 仅当类的显示说明符的 classDisplayName 属性中不存在映射时,才使用此显示名称。 有关详细信息,请参阅 显示说明符 和 类和属性显示名称。 |
governsID | 类的 OID。 此值必须在所有 classSchema 对象的 governsIDs 和所有 attributeSchema 对象的 attributeIDs 中是唯一的。 有关详细信息,请参阅 对象标识符。 |
rDnAttId | 标识命名属性,该属性为此类提供 RDN(如果不同于默认值(cn)。 不建议使用除 cn 以外的命名属性。 命名属性应取自所有 LDAP 版本 3 客户端理解的已知集(OU、CN、O、L 和 DC)。 有关详细信息,请参阅 active Directory 域服务 中属性 对象名称和标识 和语法。 命名属性必须具有目录字符串语法。 有关详细信息,请参阅 Active Directory 域服务 中属性语法。 |
mustContain,systemMustContain | 一对多值属性,用于指定此类实例上必须存在的属性。 这些是创建过程中必须存在的必需属性,创建后无法清除。 创建类后,无法更改这些属性。 类的完整强制属性集是 systemMustContain 和 mustContain 此类和所有继承类的值的并集。 |
mayContain,systemMayContain | 一对多值属性,指定此类实例上可能存在的属性。 这些是非强制性的可选属性,因此,此类实例上可能存在或可能不存在这些属性。 可以从现有类别 1 或类别 2 classSchema 对象添加或删除 mayContain 值。 在从 classSchema 对象中删除 mayContain 值之前,应搜索对象类的实例并清除要删除的属性的任何值。 创建类后,无法更改 systemMayContain 属性。 类的完整可选属性集是 systemMayContain 和 mayContain 此类和所有继承类的值的并集。 |
possSuperiors,systemPossSuperiors | 一对多值属性,用于指定结构类,这些类可以是此类实例的法律父级。 完整的可能的上级集是 systemPossSuperiors 和 possSuperiors 此类值以及任何继承的结构类或抽象类的联合。
systemPossSuperiors 和 possSuperiors 值不继承自辅助类。 可以从现有类别 1 或类别 2 classSchema 对象添加或删除 possSuperiors 值。 创建类后,无法更改 systemPossSuperiors 属性。 |
objectClassCategory | 一个整数值,该值指定类的类别,可以是下列值之一:
|
subClassOf | 此类的直接超级类的 OID,即从中派生此类的类。 对于结构类,subClassOf 可以是结构类或抽象类。 对于抽象类,subClassOf 只能是抽象类。 对于辅助类,subClassOf 可以是抽象类或辅助类。 如果定义新类,请确保新类写入目录时存在 subClassOf 类或将存在。 如果类不存在,则 classSchema 对象不会添加到目录中。 |
auxiliaryClass,systemAuxiliaryClass | 一对多值属性,指定此类继承的辅助类。 完整的辅助类集是 systemAuxiliaryClass 和 auxiliaryClass 值在此类和所有继承类上的联合。 对于现有 classSchema 对象,可以将值添加到 auxiliaryClass 属性,但不能删除。 创建类后,无法更改 systemAuxiliaryClass 属性。 |
defaultObjectCategory | 此对象类的可分辨名称或其超级类之一。 创建此对象类的实例时,系统将新实例的 objectCategory 属性设置为其对象类的 defaultObjectCategory 属性中指定的值。
objectCategory 属性是用于提高对象类搜索效率的索引属性。
如果在创建类时未指定 defaultObjectCategory,则系统会将其设置为此类的 classSchema 对象的可分辨名称(DN)。 如果此对象经常被超级类的值而不是对象自己的类查询,则可以将 defaultObjectCategory 设置为超级类的 DN。 例如,如果要对预定义的(类别 1)类进行子类分类,最佳做法是将 defaultObjectCategory 设置为与超级类相同的值。 这使标准 UI 能够“查找”子类。 有关详细信息,请参阅 对象类和对象类别。 |
defaultHidingValue | 一个布尔值,该值指定此类新实例的 showInAdvancedViewOnly 属性的默认设置。 许多目录对象对最终用户来说并不感兴趣。 为了防止这些对象混乱 UI,每个对象都有一个名为 showInAdvancedViewOnly的布尔属性。 如果 defaultHidingValue 设置为 TRUE,则管理管理单元和 Windows shell 中隐藏新的对象实例。 即使对象类的 displaySpecifier 对象上设置了适当的创建向导属性,对象类的菜单项也不会 显示在“管理管理”管理单元的“新建 上下文菜单中。 如果 defaultHidingValue 设置为 FALSE,则对象的新实例将显示在管理单元和 Windows shell 中。 将此属性设置为 FALSE 以查看管理管理单元和 shell 中的类实例,并在管理管理单元的“新建 ”菜单中启用创建向导及其菜单 项。 如果未设置 defaultHidingValue 值,则默认值为 true 。 |
systemFlags | 一个整数值,该值包含定义类的其他属性的标志。 0x10位标识类别 1 类(属于系统中包含的基架构的类)。 不能设置此位,这意味着该位未在类别 2 类(即架构的扩展)中设置。 |
systemOnly | 一个布尔值,该值指定是否只有 Active Directory 服务器可以修改该类。 只能由目录系统代理(DSA)创建或删除仅系统类。 仅系统类是系统对于正常作所依赖的类。 |
defaultSecurityDescriptor | 指定此类的新对象的默认安全描述符。 有关详细信息,请参阅 默认安全描述符 和 如何在新目录对象上设置安全描述符。 |
isDefunct | 一个布尔值,该值指示类是否已失效。 有关详细信息,请参阅 禁用现有类和属性。 |
说明 | 供管理应用程序使用的类的文本说明。 |
objectClass | 标识此对象是实例的对象类,该类是所有类定义的 classSchema 对象类,以及所有属性定义的 attributeSchema 对象类。 |