延迟链接对 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... 以查看原文