为了减少一个应用程序中断其他应用程序以及保持架构一致性的可能性,Active Directory 域服务对允许应用程序或用户进行的架构更改类型实施限制。
仅对现有架构对象的修改施加限制。 架构分为两个类别。 基础架构中随 Windows 2000 一起随附的架构对象属于类别 1。 以后通过动态架构扩展添加的其他应用程序或用户添加的任何架构对象都属于类别 2。 架构对象的类别可由 systemFlags 属性中 classSchema 对象的0x10位集确定。 此位仅在类别 1 对象上设置,不能更改,也不能在任何 Category 2 对象上设置。
Active Directory 域服务内部使用 systemFlags 属性来标识基本架构中“基础结构”对象的特殊特征。 除了标识类别 1 对象之外,systemFlags 还控制是否可以移动、删除或重命名对象。 对于 Windows 2000 依赖运行的对象,将阻止这些作。
在任何架构对象(类别 1 或 2)上,Active Directory 域服务将施加以下限制:
- 不能向类添加新 mustContain(通过添加辅助类直接或通过继承)。
- 不能删除类的任何 mustContain(直接或通过继承)。
此外,对类别 1 架构对象施加了以下附加限制:
不能更改类别 1 属性的以下属性:
- rangeLower 和 rangeUpper(值范围)。
- attributeSecurityGuid(确定设置属性所属的属性(如果有)。
不能更改类别 1 类的 defaultObjectCategory。
不能更改类别 1 类的任何实例的 objectCategory。
不能使类别 1 类或属性失效。
不能更改类别 1 类或属性的 lDAPDisplayName。
不能重命名类别 1 类或属性。