Microsoft Exchange 2000 架构定义了三个不符合 Request for Comments
(RFC) 的属性:
houseIdentifier、
Secretary 和
labeledURI。Microsoft Windows 2000 InetOrgPerson 工具包重新定义了
Secretary 属性和
labeledURI 属性。Microsoft Windows Server 2003 中的
adprep /forestprep 命令已重新定义了上述三个属性,详见 Request for Comments (RFC) 2798。
如果
Exchange 2000 在您运行 Windows 2000 InetorgPerson 工具包之前创建了这三个属性,则在 Windows Server
2003
adprep /forestprep 复制添加符合 RFC 的新定义后,
houseIdentifier 属性的
LdapDisplayName 属性会出现冲突或“错位”。如果 Exchange 2000 在您运行 Windows Server 2003
adprep /forestprep 命令之前创建了这三个属性,则所有三个属性都会错位。如果 Windows Server 2003
adprep /forestprep 命令在您安装 Exchange 2000 之前创建这些属性,则不会发生这些冲突。
当 Windows Server 2003
adprep /forestprep 命令在包含 Exchange 2000 架构的 Windows 2000 林中添加其
InetOrgPerson 属性时,它对于
Secretary、
houseIdentifier 和
labeledURI 属性的定义会与这些属性的 Exchange 2000 定义冲突。在收到 Windows Server 2003
架构更新的域控制器中,这些属性的 Exchange 2000 定义的
LdapDisplayName 属性会修改,以避免冲突。当 Microsoft Active Directory
目录服务检测到重复的名称时,它会修改其中一个对象的名称,方法是在名称的开头加上“Dup”和一些唯一的字符。此现象称为对象“错位”。
如果您使用 Windows Server 2003
adprep /forestprep 命令来创建
Secretary、
labeledURI 和
houseIdentifier 属性的初始定义,则 Active Directory 林不会出现此错位的显示名称问题。具体说来,以下情况下不会出现错位的
LdapDisplayName 属性:
- 安装 Exchange 2000 之前,在 Windows 2000 林中运行 Windows Server 2003
adprep /forestprep 命令。
- 将 Exchange 2000 添加到现有的 Windows 2000 林中。在运行 Windows Server
2003 adprep /forestprep 命令之前,运行 Inetorgpersonfix.ldf 文件。
如果 Exchange 2000 在 Windows 2000 域中创建
Secretary、
houseIdentifier 和
labeledURI 属性的初始定义,则 Windows 2000 和 Windows Server 2003
林中可能出现错位的属性。在下面的情况中可能会出现这种现象:
- 您从 InetOrgPerson 工具包添加 InetOrgPerson 类之前,将 InetOrgPerson 类的 Exchange 2000 版本添加到 Windows 2000 林中。
- 您在运行 Windows Server 2003 adprep /forestprep 命令之前,将 InetOrgPerson 类的 Exchange 2000 版本添加到 Windows 2000 林中。
- 您在运行 Windows Server 2003 adprep /forestprep 命令之前,添加 Windows 2000 InetOrgPerson 工具包,然后安装 Exchange 2000
架构更改。
- 在您从 Windows Server 2003 安装介质运行 Inetorgperson-fix.ldf 文件后,包含
InetOrgPerson 的 Exchange 2000 定义的 Windows 2000 域控制器没有收到 Active Directory
的更新。
情况 1:在运行 adprep /forestprep 命令之后添加 Exchange 2000 架构更改
如果在从 Windows Server 2003 中运行
adprep /forestprep 命令后,将 Exchange 2000 架构更改引入到 Windows 2000 林,请查看以下 Microsoft
知识库文章中的“概述:将 Windows 2000 域控制器升级到 Windows Server 2003”一节:
325379
(http://support.microsoft.com/kb/325379/
)
如何将 Windows 2000 域控制器升级到 Windows Server 2003
情况 2:在您运行 Windows Server 2003 adprep /forestprep 命令之前安装了 Exchange 2000 架构更改
如果已经安装了 Exchange 2000 架构更改,但尚未在 Windows Server 2003 中运行
adprep /forestprep 命令,请考虑以下操作计划:
- 使用作为架构管理员组和企业管理员组成员的帐户登录到架构操作主机的控制台。
- 启用架构主机上的架构更新。 有关如何允许对 Active Directory
架构进行更新的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
285172
(http://support.microsoft.com/kb/285172/
)
架构更新需要 Active Directory 中的架构的写权限
- 单击开始,再单击“运行”,键入
notepad.exe,然后单击“确定”。
- 复制下面的 [start copy here] 和 [end copy here] 之间显示的文本(包括结尾的“-”字符),然后将此文本粘贴到记事本中。
[start copy here]
dn:CN=ms-Exch-Assistant-Name,CN=Schema,CN=Configuration,DC=X
changetype:Modify
replace:lDAPDisplayName
lDAPDisplayName:msExchAssistantName
-
dn:CN=ms-Exch-LabeledURI,CN=Schema,CN=Configuration,DC=X
changetype:Modify
replace:lDAPDisplayName
lDAPDisplayName:msExchLabeledURI
-
dn:CN=ms-Exch-House-Identifier,CN=Schema,CN=Configuration,DC=X
changetype:Modify
replace:lDAPDisplayName
lDAPDisplayName:msExchHouseIdentifier
-
dn:
changetype:Modify
add:schemaUpdateNow
schemaUpdateNow: 1
-
[end copy here] - 将记事本文件的内容另存为
%systemdrive%\IOP\Inetorgpersonprevent.ldf(其中
%systemdrive% 是承载 Windows 2000 操作系统的逻辑驱动器,\IOP
是您在记事本的“保存”对话框中创建的文件夹)。退出记事本。
- 运行 InetOrgPersonPrevent.ldf 脚本:
- 单击“开始”,单击“运行”,键入
cmd,然后单击“确定”。
- 在命令提示符处,键入:
cd %systemdrive%\iop
然后按 Enter 键。 - 键入下面的命令:
ldifde -i -f inetorgpersonprevent.ldf -v -c DC=X "dn path for forest root domain"
其中 X 是区分大小写的常量,dn path
for forest root domain
是包含在引号中的林的根域的域名路径,("dc=corp,dc=tailspintoys,dc=com") 是林的根域的域名路径。(包括引号。)按 Enter
键。
- 在运行 Windows Server 2003 adprep /forestprep 命令之前,验证架构命名上下文中的 CN=ms-Exch-Assistant-Name、CN=ms-Exch-LabeledURI 和 CN=ms-Exch-House-Identifier 属性的 LDAPDisplayname 现在分别显示为 msExchAssistantName、msExchLabeledURI 和 msExchHouseIdentifier。
- 运行 adprep /forestprep 命令和 /domainprep 命令。
有关更多信息,请参阅以下 Microsoft 知识库文章中的“概述:将 Windows 2000
域控制器升级到 Windows Server 2003”一节:325379
(http://support.microsoft.com/kb/325379/
)
如何将 Windows 2000 域控制器升级到 Windows Server 2003
情况 3:在运行 Windows Server 2003 adprep /forestprep 命令之前未运行 InetOrgPersonfix
如果在包含 Exchange 2000 架构更改的 Windows 2000 林中运行 Windows Server 2003
adprep /forestprep 命令,则
houseIdentier、
Secretary 和
labeledURI 的
LdapDisplayname 属性会错位。要识别错位的名称,请使用 Ldp.exe 查找受影响的属性:
- 从 Windows 2000 或 Windows Server 2003 介质的 Support\Tools
文件夹安装 Ldp.exe。
- 从林中的域控制器或成员计算机启动 Ldp.exe。
- 在连接菜单上,单击连接,将服务器框留空,在端口框中键入 389,然后单击确定。
- 在连接菜单上,单击绑定,将所有框留空,然后单击确定。
- 记下 SchemaNamingContext 属性的可分辨名称路径。
例如,对于 CORP.ADATUM.COM 林中的域控制器,可分辨名称路径将是
CN=Schema,CN=Configuration,DC=corp,DC=adatum,DC=com。 - 在浏览菜单上,单击搜索。
- 配置以下设置:
- 基位置 DN:键入在步骤 3 中标识的架构名称上下文的可分辨名称路径。
- 筛选器:键入 (ldapdisplayname=dup*)。
- 作用域:单击“子树”。
- 错位的 HouseIdentifier、Secretary 和 LabeledURI 属性的
LDAPDisplayName 属性类似以下格式:
lDAPDisplayName:DUP-labeledURI-9591bbd3-d2a6-4669-afda-48af7c35507d;
lDAPDisplayName:DUP-secretary-c5a1240d-70c0-455c-9906-a4070602f85f
lDAPDisplayName:DUP-houseIdentifier-354b0ca8-9b6c-4722-aae7-e66906cc9eef
如果 LabeledURI、Secretary 和 HouseIdentifier 的 LDAP 显示名称错位,请运行
Windows Server 2003 InetOrgPersonfix.ldf 脚本以进行恢复:
- 创建一个名为 %Systemdrive%\IOP
的文件夹,然后将 InetOrgPersonfix.ldf 文件解压缩到此文件夹中。
- 在命令提示符处,键入 cd
%systemdrive%\iop,然后按 Enter
键。
- 从位于 Windows Server 2003 安装介质的 Support\Tools 文件夹中的
Support.cab 文件解压缩 InetOrgPersonfix.ldf 文件。
- 从架构操作主机的控制台,使用 Ldifde.exe 加载 InetOrgPersonfix.ldf
文件,以更正 houseIdentifier、Secretary 和 labeledURI 属性的 LdapDisplayName 属性。为此,请键入以下命令(其中 X
是区分大小写的常量,dn path for forest root domain
是包含在引号中的林的根域的域名路径):
ldifde -i -f inetorgpersonfix.ldf -v -c DC=X "dn path for forest root domain"
- 验证架构命名上下文中的 houseIdentifier、Secretary 和 labeledURI 属性没有发生错位。
- 使用 Winnnt32.exe 升级 Windows 2000 域控制器。
有关如何使用 Winnt32.exe 升级 Windows 2000 域控制器的其他信息,请单击下面的文章编号,以查看 Microsoft
知识库中相应的文章: 325379
(http://support.microsoft.com/kb/325379/
)
如何将 Windows 2000 域控制器升级到 Windows Server 2003
InetOrgPerson 属性错位时 Exchange 2000 Server 遇到错误
当您在包含多个域控制器的域中安装或升级 Exchange 2000 Server 计算机时,在安装
/forestprep 过程中会收到以下错误信息:
Setup failed while
installing subcomponent Microsoft Windows Active Directory schema update with
error code 0xC1037AE6 (please consult the installation logs for a detailed
description).You may cancel the installation or try the failed step
again
安装日志可能包含以下错误信息:
[14:07:16] ScRunLDIFScript (k:\admin\src\libs\exsetup\exmisc.cxx:1333)
Error code 0XC1037AE6 (31462): Extending the schema in the Active Directory failed.
Please consult the error log LDIF.ERR in your TEMP directory.
出现此问题的原因是存在 InetOrgPerson 冲突。按照本文的情况 3 中所述运行 Inetorgpersonfix.ldf
文件。
文章编号: 314649 - 最后修改: 2011年5月16日 - 修订: 10.0
这篇文章中的信息适用于:
- Microsoft Windows Server 2003 Standard Edition
- Microsoft Windows Server 2003 Enterprise Edition
- Microsoft Windows Server 2003 Datacenter Edition
- Microsoft Windows 2000 Server
- Microsoft Windows 2000 Advanced Server
- Microsoft Exchange 2000 Server 标准版
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。