架构实现
在 Active Directory 域服务中,类和属性定义分别作为 classSchema 和 attributeSchema 类的实例存储在目录中。 classSchema 和 attributeSchema 是在架构中定义的类。 要操作 Active Directory 模式,请使用与操作其他对象相同的 LDAP 操作。 由于架构是目录的关键部分,它会影响整个林,因此架构扩展会受到特殊限制。 有关限制的详细信息,请参阅对架构扩展的限制。
总结架构的实现:
classSchema 类的实例定义了 Active Directory 域服务支持的每个对象类。 classSchema 对象的属性(例如 mayContain 和 mustContain 属性)描述了一个对象类,这与用户对象的属性(例如 userPrincipalName 和 telephoneNumber 属性)描述用户的方式相同。 有关详细信息,请参阅对象类的特征。
attributeSchema 类的实例用于定义 Active Directory 域服务支持的每个属性。 attributeSchema 对象的属性(例如 attributeSyntax 和 isSingleValued 属性)描述了一个属性,与用户对象的属性描述该用户的方式相同。 有关详细信息,请参阅属性特征。
attributeSchema 和 classSchema 类的实例存储在目录中一个已知的位置,即架构容器中。 架构容器始终具有以下形式的可分辨名称:
CN=Schema,CN=Configuration,<DC=forestroot>
其中,“<DC=forestroot>”是林根的可分辨名称,例如“DC=Fabrikam,DC=Com”。
要获取架构容器的可分辨名称,请读取 rootDSE 的 schemaNamingContext 属性。 有关 rootDSE 及其属性的详细信息,请参阅无服务器绑定和 RootDSE。
在考虑架构时,请记住:
- 架构更改为全局性。 整个林只有一个架构。 架构会被全局复制:林中的每个域控制器上都有一个模式副本。 在扩展架构时,要对整个林进行扩展。
- 架构添加不可逆。 将新的类或属性被添加到架构中后,无法将其删除。 可以禁用现有属性或类,但不能删除。 有关详细信息,请参阅禁用现有类和属性。
- 禁用类或属性不会影响该类或属性的现有实例,但会阻止创建新实例。 如果属性包含在未禁用的任何类中,则不能禁用该属性。