在将Exchange 2010添加到我们的环境中之后,脱机通讯簿不会更新为1个用户

今天早上我已经花了更多的时间与这个摔跤,所以我分享它,以防其他情况下遇到同样的问题。

我们目前处于Exchange 2003 / Exchange 2010共存期。 我们的Exchange 2010服务器上有几个testing邮箱,其余的都在Exchange 2003上,我们的脱机通讯簿生成服务器当前是Exchange 2003服务器。

昨天有人离开了公司,所以我们按照正常的程序,把它们从所有的Exchange地址列表中隐藏起来,一夜之间等待重build脱机地址簿。 当我今天进来时,违规用户仍然列在我们的脱机通讯录中。 作为参考,此用户邮箱位于Exchange 2003服务器上。

我检查了Exchange 2003服务器上的事件日志,在OAB生成过程中,Microsoft Exchange System Attendant服务在凌晨没有logging警告或错误。 想到这只是一个侥幸,我手动重build脱机通讯簿与相同的结果(没有警告/错误,用户仍然在脱机通讯簿)。

Outlook中没有同步错误,并且我已validation(使用Exchange 2003服务器上的Exchange系统pipe理器)脱机通讯簿确实存在,并且仍在每天早晨的凌晨创build,以及当我手动重build它时今天早上。

调查这个问题需要我使用一点Active Directory知道,以及一些Exchange-2010-Management-Shell-fu。

我检查的第一件事是如果我的2域控制器正在复制。 我最初的想法是当我在Active Directory用户和计算机中更新了从Exchange地址列表中隐藏的地址列表checkbox时,我在一个域控制器上更改了这个域控制器,而这个域控制器没有复制到脱机通讯簿生成过程发生的其他域控制器。 事实certificate,域控制器正在复制,这不是问题。

接下来要做的是查看一些Active Directory属性及其当前值。 我使用Active Directory进行低级别工作的首选工具是Sysinternals的ADExplorer ,但是如果您愿意的话,ADSI Edit也可以做同样的工作。

我在用户上查看的第一个属性是msExchHideFromAddressLists属性。 这应该是假的,如果用户应该出现在地址列表和TRUE,如果不应该。 这实际上只是一个感觉检查,因为这是Active Directory用户和计算机在您(取消选中) 从Exchange地址列表中隐藏checkbox时更新的内容。 这是正确显示TRUE

下一个要检查的属性是showInAddressBook 。 这是一个多值属性,其中包含该用户应该出现的所有地址列表。通常,这应该包含至less一个用户应该出现的地址列表,但是对于任何将msExchHideFromAddressLists属性设置为TRUE的人来说,此属性不应该是设置在所有。 这是最大的线索,因为此用户仍然具有此属性中的值,当“ 隐藏从Exchange地址列表”checkbox被选中时,该属性应已被删除。

Exchange 2003服务器上的收件人更新服务负责更新Active Directory中showInAddressBook属性( 除其他外 )的值,因此我确定收件人更新服务出于某种原因在此出现故障。

当我最初安装Exchange 2010时,我不得不运行setup.com /PrepareLegacyExchangePermissions来授予收件人更新服务一些所需的权限,因为Exchange 2010会稍微移动一些东西。

为了检查权限,我打开了Active Directory用户和计算机,并select了视图=>高级function ,使我能够查看Active Directory中用户帐户的安全属性。 然后,我打开了违规用户,并在安全选项卡上进行了检查,并将其与另一个应包含在“脱机通讯簿”中的用户进行比较。 虽然我没有检查每个权限,但很明显应该在脱机通讯录中的用户比刚刚离开的用户拥有更多的权限。 检查一些其他的用户,他们还有比违规用户更多的权限。

偶然偶然发现的一件事是,违规用户不是从父对象inheritance权限,而我检查过的所有其他用户都是。 我从经验中知道,这通常只在用户(或曾经是) Active Directory特权组的成员时发生。 在validation它们不再是特权组的成员之后,我又回到了ADExplorer,并将该用户的adminCount属性从1更改为0.然后,我又回到了Active Directory用户和计算机,并启用了此用户configuration文件以inheritance父对象。

我这样做后,我进入用户属性,并取消选中隐藏从Exchange地址列表checkbox,然后再次检查。 我等待了几分钟让收件人更新服务完成了它的工作,5分钟后,当我查看ADExplorer中的用户对象时,收件人更新服务已经删除了之前没有权限执行的showInAddressBook属性。 脱机通讯录的快速手动重build和大家都很高兴。