对架构扩展的限制

为了减少一个应用程序更改架构时中断其他应用程序的可能性并保持架构的一致性,Active Directory 域服务对允许应用程序或用户更改架构的类型加以限制。

这些限制仅适用于对现有架构对象的修改。 架构分为两个类别。 Windows 2000 基本架构中所采用的架构对象属于类别 1。 其他应用程序或用户随后通过动态架构扩展添加的任何架构对象都属于类别 2。 架构对象的类别可通过在 classSchema 对象的 systemFlags 属性中设置的 0x10 位来确定。 该位只在类别 1 对象上设置且不能更改,也不能在任何类别 2 对象上设置。

systemFlags 属性由 Active Directory 域服务内部使用,用于标识基础架构中“基础结构”对象的特殊特征。 除了标识类别 1 对象之外,systemFlags 还可控制对象是否可以移动、删除或重命名。 对于 Windows 2000 运行所依赖的对象,这些操作将被阻止。

对于有任何架构对象(类别 1 或 2),Active Directory 域服务都会施加以下限制:

  • 无法在类中添加新的 mustContain(直接添加或通过继承添加辅助类)。
  • 无法删除类中的任何 mustContain(直接或通过继承)。

此外,类别 1 架构对象还受到以下额外限制:

  • 无法更改类别 1 属性的以下属性:

    • rangeLowerrangeUpper(值范围)。
    • attributeSecurityGuid(如有,则确定属性属于哪个属性集)。
  • 无法更改类别 1 的 defaultObjectCategory

  • 无法更改类别 1 的任何实例的 objectCategory

  • 无法让类别 1 类或属性失效。

  • 无法更改类别 1 类或属性的 lDAPDisplayName

  • 无法重命名类别 1 类或属性。