Freigeben über


延迟链接对 OAB 生成进程有何影响...

原文发布于 2011 年 9 月 14 日(星期三)

在 Exchange 内,含有延迟链接的任何通讯组或启用了电子邮件的安全组都会影响 OAB(脱机通讯薄)的生成进程,从而导致其无法正确复制。尽管自 AD 随 Windows 2000 启用后,这一问题就已经出现,但它在很大程度上不为人知,此问题关系到 OAB(脱机通讯薄)生成进程能否正常运行。

可选择多种办法来解决此问题。您可以删除并重新创建受影响的组,或重新承载包含带有延迟链接的组的 Active Directory 分区。

什么是延迟链接?

以下信息可能有助于您更好地理解在 Active Directory 中“链接”指什么:

Active Directory 中的部分内部对象引用需要向后引用来方便使用和管理。例如,如果 managedBy 是对象属性,您可以查看 ObjectA,并确定 ObjectA 由 ObjectB 管理。同样,有时这有助于查看 ObjectB,并确定 ObjectB 管理哪些对象(例如,managedObjects 属性的值)。Active Directory 可维持彼此引用的对象之间的引用完整性,以便在目录树中移动一个对象时,可维持该对象与其他对象之间的引用。可通过链接的属性实现这种引用。

两个链接的属性在架构中标记为“具有同一链接对”标识符;一个标记为向前链接,另一个标记为向后链接。例如,在 managedBy / managedObjects 链接对中,managedBy 为向前链接。因此,要调整用户对象的 managedObjects 属性,您必须转到要从用户的 managedObjects 值中添加或移除的对象,并修改每个对象的 managedBy 值。当用户操作要求向后链接属性时,系统将计算这些属性。

要查找 ObjectB 管理的所有对象,需要检查链接对为 managedBy / managedObjects,且向后链接属性标识 ObjectB 的所有记录的链接。这些记录的链接对提供了 ObjectB 管理的所有记录(对象)的数据库标识符。

通讯组列表成员资格同时作为向前链接和向后链接对实施。向后链接对象将是存储 isMemberOfDl 属性的对象。向前链接 member 属性是一个多值属性,让用户可以成为多个通讯组列表的成员。向后链接必须始终为多值链接,因为无法限制哪个成员创建指向各对象的链接。

延迟链接是一个向后链接属性,包含 Active Directory 中不再存在的对象的 DN(可分辨名称)。出现上述问题是因为全局编录服务器(以及 GC 的只读分区)无法从问题域中接收可写域控制器的声音复制。这也解释了为什么 GC 通常保留破坏的延迟链接值,而可写 DC 却不会出现此问题。

问题描述

OAB 生成进程使用 QueryRows 函数从 Active Directory 中返回属性值。如果返回的数据无效,应用程序事件查看器将返回错误事件,OABGen 进程将无法完成。

与此问题相关的错误事件:

事件源

事件 ID

事件字符串

MSExchangeSA

9126

OALGen 在为地址列表“\Global Address List”计算脱机地址列表时遇到 8004010e 错误。

MSExchangeSA

9330

OALGen 在访问“\Global Address List”的 Active Directory ContosoHUB03 时遇到 8004010e 错误(内部 ID 500139c)。

MSExchangeSA

9339

Active Directory“HubServer” 在为“\Global Address List”生成脱机地址列表时返回了错误 8004010e。Active Directory 返回的最后一个收件人为“UserName”。将不会生成此脱机地址列表。

最近发布了一篇由 Justin Turner 撰写的知识库文章,其中对如何在 Exchange 中应用延迟链接进行了更为详细的阐述:

由包含陈旧或错误数据的属性导致的 Exchange 脱机通讯簿 (OAB) 生成失败:以包含错误 8004010e 的事件 9126 9330 和 9339 为例
https://support.microsoft.com/kb/2553698/zh-cn(该链接可能指向英文页面)

疑难解答

在公司内部,Active Directory 工程师会定期使用 repadmin 命令行工具清理延迟对象,具体过程非常简单。Microsoft ADRAP(AD 风险评估计划(该链接可能指向英文页面),面向顶级客户提供的服务)将报告您的 Active Directory 环境内是否存在任何延迟对象。尽管清理延迟对象的过程已为人所知,但从 AD 中发现延迟链接却并非易事。不过,我们提供了识别延迟链接的 Exchange 工具:oabvalidate.exe https://oabvalidate.codeplex.com/(该链接可能指向英文页面)。工具研发人 (Bill Long) 会在 Codeplex 上主动更新该工具。OABValidate 工具很小(不到 800kb),在指定的 DC 上运行,运行时间通常不会很长(具体取决于 AD 环境中对象的数量),并将为您提供一份包含需要处理的延迟链接的任何组的清单。

在安装和运行 Exchange,并将延迟链接引入环境后会发生什么情况?会出现 OAB 生成错误,这可能指示您的环境中有需要处理的延迟链接。

Mike O’Neill

这是一篇本地化的博客文章。请访问 How Lingering Links can impact OAB generation process... 以查看原文