Exchange 2007 SP2 的动态架构更新与验证

 

适用于: Exchange Server 2007 SP2

上一次修改主题: 2012-03-26

Exchange Server 2007 中的 Active Directory 驱动程序 (Microsoft.Exchange.Data.Directory.Dll) 是 Exchange 托管代码用于访问 Active Directory 中配置的界面。Active Directory 容器中的对象会显示直接从属性中得到,或是通过属性计算获得的属性。这些对象显示的属性可导出为 cmdlet 参数。

通常,Active Directory 架构定义是静态的。当发布包含新配置数据的更新时,当前的方法会在  App.config 文件(XML 文件中的 XML 值)中实施这些设置。但此方法会导致故障,并且无法有效地进行扩展。

Microsoft Exchange Server 2007 Service Pack 2 (SP2) 中包含的 Active Directory 驱动程序现已支持以下功能:

  • 添加独立于架构更改的属性。

  • 参考架构中不存在属性的能力。此驱动程序还使 Exchange 托管代码能够在读取新属性并且架构未展开时发挥作用。在此情况下,当未在对象上设置属性,或是架构中不存在属性时,Active Directory 驱动程序将返回默认值。在默认情况下,在读取操作过程中,添加的、架构中不存在的属性会以默认值形式提供。

  • 与 Microsoft Exchange Server 2010 代码的兼容性。

  • 在 Exchange 2007 SP2 前,向架构中不存在的属性进行写入会违反约束条件。Exchange 2007 SP2 中所包含的 Active Directory 驱动程序附带动态验证码,该验证码可对新属性(架构未将此属性作为值)执行附加验证。

    尝试更改 mayContain 参数中不存在的属性时会出现意外错误。更新的 Active Directory 驱动程序会提供有关意外错误的详细信息。例如:

    SchemaNotExtended(string objectClass, string objectAttribute, string udpateAdded)=Object class {0} 不包含属性 {1} 作为有效的 mayContain 条目。您必须使用来自 {2} 的更新来展开架构,以设置此属性。

    其中 0 是派生最多的对象类,1 是不存在的 LDAP 属性名称。2 是其中添加了值的非本地化更新名称。