Exchange 2003脱机地址簿排错经验谈

日期: 2008-07-13 作者:风华正茂 来源:TechTarget中国

  最近我帮用户诊断过一些脱机地址簿(OAB)的问题,其中一个最常见的问题就是Parent Distinguished Names(PDN)更改。我想花几分钟的时间来和大家分享我的关于排错OAB及PDN更改的问题的经验。


  什么是PDN表格?


  PDN表格是被父辨别名称的脱机地址簿生成器(OABGen)维护的一个字符表格。当脱机地址簿生成过程在生成一个地址列表的时候,它将把属于对象的ExchangeLegacyDN和x500代理地址分为两个不同的部分:


  PDN——父辨别名称:/o=ORG/ou=SITE/cn=CONTAINER/


  RDN——相对辨别名称:/CN=test


  PDN表格被用来作为Exchange客户端(像Microsoft Outlook)的参考,当它组成邮件收件人的MAPI ID条目时。因为OAB中大多数收件人都共享PDN的一小部分设置,用一个表格来节省空间避免为每个收件人单独存储它们。在Exchange 2003 SP2之前,OAB生成过程在处理PDNs的增加和删除时有问题。当检测到PDN表格发生更改,它将引起OAB生成过程跳过一天的差异文件生成。OAB Version 2和OAB
Version 3a的客户端受到该问题的影响,结果导致客户端下载完整的OAB。随着Exchange 2003 SP2的出现,这对OAB Version 4客户端(Outlook 2003 SP2和以后的版本)来说已经不在是一个问题了。


  注意:当您使用Offline Address Book version 4的时候,您必须在服务器上使用Exchange 2003 SP2(或以后的版本)和在客户端上使用Outlook 2003 SP2(或以后版本)。


  问题的症状


  在用户的Exchange服务器上的应用程序日志文件中,出现了下面的错误日志:


  事件类型:Warning


  事件来源:MSExchangeSA


  事件类别:OAL Generator


  事件ID:9340


  日期:5/31/2008


  时间:4:09:15 AM


  计算机:SERVERNAME(考虑到用户的安全,我将实际的计算机名做了修改)


  描述:


  为脱机地址列表全局地址列表”生成差异更新文件的过程中,发现了新的父级旧版Exchange DN容器值“/o=ORG/ou=SITE/cn=Recipients/cn=Recipients”。这将强制使用此脱机地址列表的客户端完全下载该脱机地址列表。


  事件类型:Warning


  事件来源:MSExchangeSA


  事件类别:OAL Generator


  事件ID:9360


  日期:5/31/2008


  时间:4:09:15 AM


  计算机:SERVERNAME


  描述:


  OALGen在为地址列表“全局地址列表”的版本2和版本3差异下载生成changes.oab 文件时遇到错误。脱机地址列表未更新,因此客户端无法下载当前更改集。请检查日志所记录的其他事件查找引起此错误的原因。


  如果问题的原因是故意导致的或无法解决的,则可以通过在此服务器上创建DWORD注册表项“HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesMSExchangeSAParametersOAL post full if diff fails”并将其设置为 1,来强制OALGen投递完整的脱机地址列表。当OALGen接下来生成脱机地址列表时,客户端将执行完整的OAB下载。然后,应该删除此注册表项以防止进一步的完全下载。


  为了隔离该问题,我让用户在Exchange服务器上运行Exchange最佳实践分析工具(ExBPA),然后将生成的.xml文件发给我,我仔细分析了XML文件 ,没有发现和OAB相关的错误。这时问题的分析进入僵局。


  我又仔细看了9340和9360两个错误日志,我觉得问题和“新的父级旧版Exchange DN容器值”的更改有关,但是如何检查这个容器值呢。OABinteg.exe该工具可以实现这个。


  由于我把该工具发送给用户,并拷贝Outlook客户端上的C盘的根目录中,然后进入命令行模式,运行下面的命令:


  OABInteg /s:ExchSrvrName /t:proxytest /v:2 /l


  在运行该命令时,必须确保您使用的Outlook配置文件处于在线模式,如果处于缓存模式的话,运行该命令会出现下面这些错误:


  You are using a cached profile for your query. Please use an Online profile.


  该命令运行完成后,会在C盘的根目录下生成OABinteg.txt文件,通过分析该文件,我发现下面这些信息:


  Processing Address Book Entry #7 of 50.


  Display Name = Object is a Distribution list object


  LegacyExchangeDN starts with ’/o=’ or ’/O=’. Value = /o=org/ou=site/cn=Recipients/cn=Recipients/cn=user@abc.com


  ERROR: LegacyExchangeDN has the ’@’ character present. This is a PDN issue and this can cause full downloads.


  让用户在域控制器上使用adsiedit.msc工具来查看user@abc.com 的LegacyExchangeDN属性。该工具包含在Windows support tool中。正常的用户的LegacyExchangeDN属性 如图1所示,通过比较发现多了一个域名,修改过来后,然后执行下面的操作:


    1.打开活动目录站点和服务工具,展开站点,展开服务器,展开NTDS Settings,右键选中活动目录连接,选择立即复制。


  2.等待1小时左右,以便完成复制。


  注意:这是一个推和拉的过程,您应该在所有的域控制器上进行双向的复制。


  为了验证该错误已经彻底解决,我让用户执行下面的操作:


  1. 打开Exchange系统管理器,定位到Exchange服务器,右键选中它,选择属性,然后点击诊断日志,选中MSExchangeSA,选中OAL Generator,将下面的日志级别调整到最大,如图2所示。
  
    2. 定位到脱机地址簿,右键选中缺省的脱机地址簿,选择重建,


  3. 然后观察应用程序事件日志,看是否出现Event ID为9340和9360的错误日志。


  4. 用户反馈已经没有这样的日志了,问题到此完全解决。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。