Event sinks do not function correctly if the SystemMailbox{GUID} mailbox is absent from a mailbox store in Exchange Server 2003 or in Exchange 2000 Server

  原文地址:http://support.microsoft.com/default.aspx?scid=kb;en-us;316622

如果Exchange2003Exchange2000系统中的SystemMailbox{GUID}邮箱从存储组中被忽略,则事件接收器不会起作用。

 

症状

如果Exchange2003Exchange2000系统中的SystemMailbox{GUID}邮箱从存储组中被忽略,则事件接收器不会起作用。并且,下列错误日志将被记录。

Event Type: Error
Event Source: EXOLEDB
Event Category: (3)
Event ID: 116
Description: Microsoft Exchange OLEDB was unable to initialize event system correctly. Support for store event may have been disabled. HRESULT = 0x8004010f.

Sometimes event ID 116 may be logged with error code 0x8007007e. In this scenario, the Error event is similar to the following:

Event Type: Error
Event Source: EXOLEDB
Event Category: (3)
Event ID: 116
Description: Microsoft Exchange OLEDB was unable to initialize event system correctly. Support for store event may have been disabled. HRESULT = 0x8007007e.

 

要点:本文所引用的GUID的格式如下。

0be9b6db-21a5-4d75-aa53-cdfd5e6776f3

 

确定LDP工具中Value Parsing选项被配置成String,以至于GUID值能显示成上述格式。检查或修改这一设置,请根据下列步骤完成。

警告:如果你使用ADSI编辑工具、LDP工具或其他LDAPv3客户端工具,你错误的修改了活动目录对象的属性,这可能会导致一些问题的发生。这些问题或许会导致你必需重装Windows 2000 ServerWindows Server 2003Exchange 2000 ServerExchange 2003 Server或者其他的WindowsExchange。如果你是错误的修改了活动目录对象属性而引起的问题,Microsfot不能保证这个问题能被解决。修改这些属性会具有风险。

1.       打开LDP工具,单击Options菜单,选择General

2.       General Options对话框,确定Value Parsing参数下的String被选中。

 

原因

 

当满足下列条件之一时该问题可能会发生。

SystemMailbox邮箱从邮箱存储组中丢失。

SystemMailbox邮箱存在,可是SystemMailbox邮箱没有和活动目录中帐号相关联。

SystemMailbox邮箱丢失。而且,SystemMailbox中没有活动目录帐号与之关联。

Exodbprx.dll组件没有被注册。

SystemMailbox{GUID}邮箱对箱是被连接到一个被禁用的活动目录帐号,你能从活动目录里的Microsoft Exchange系统容器对象中找到这个对象。如果下列满足下列条件,当邮箱存储被装载之后,SystemMailbox{GUID}将自动在邮箱存储中被重新建立。

    该禁用的用户帐号存在而且配置正确。

    缺少SystemMailbox{GUID}邮箱时。

可是,如果对于SystemMailbox{GUID}这个活动目录用户帐号在活动目录中损坏或是不存在,卸载然后再重新装载存储组对于上述方法无效。

 

解决方法

 

重建SystemMailbox

 

方法1

重点:你启动Exchange之前,确定没有Exchange客户端从Outlook登陆到邮箱。另外,确定没有Exchange客户端从Outlook登陆到Exchange直到你完成这个过程。这将防止第6至第7步骤中新用户帐号从临时存储组中新建的邮箱上连接或收e-mail。你可能会考虑将Exchange服务器从网络中脱离以防止用户意外的登陆到Exchange服务器。

1.  打开Exchange System Manager,定位到下列文件夹:

First Administrative Group/Server/Server Name/Protocols/SMTP

   默认SMTP虚拟服务器文件夹

2.  右击默认虚拟服务器,然后单击停止以防止邮件流在临时存储组中传送。

3.  停止Microsoft Exchange Information Store Service

4.  打开Windows资源管理器,重命名Mdbdata文件夹,备份数据库。另外,重命令该文件夹包含的日志文件。然后,创建一个新的Mdbdata文件夹。

5.  启动Microsoft Exchange Information Store Service

6.  Exchange System Manager中,只装载该邮箱存储。你会收一条警告消息,该消息显示你装载了一个空的数据存储。这是正常的。接收这一警告消息。邮箱存储组被装载之后,校验SystemMailbox对象是否已经被建立在Mailboxs文件夹中。SystemMailbox所关联的帐号将被重新建立在Active Directory Users and Computer控制台中的System Objects文件夹下。

7.  停止Microsoft Exchange Information Store 服务。

8.  Windows资源管理器中,改变第4步中你所创建的临时Mdbdata文件夹的名称。然后,改变原始Mdbdata文件夹名称为Mdbdata

9.  启动Microsoft Exchange Information Store服务和其及依懒的服务。

10.  校验邮箱存储和共享文件夹存储已经被装载成功了。在Mailboxes文件夹下有新的和旧的SystemMailbox对象,断开在Mailboxes文件夹里的SystemMailbox对象的连接。断开的旧的SystemMailbox对象在deletion-settings值生存期超过之后会被删除。

11.  启动在第二步中被停止的默认虚拟服务器。

 方法2

 

1.  在服务器上建立一个新的邮箱存储。

2.  从原邮箱始存储上移动所有邮箱到步骤1所建立的新的邮箱存储上。

3.  删除原始的邮箱存储。

该新建的邮箱存储被装载之后会有新有SystemMailbox对象第一时间在该邮箱存储上被建立。但是,如果你希望该存储代替一些邮箱,并且服务器运行在Exchange 2000 标准版或Exchange 20003版本,则该方法无效。

如何手动重建SystemMailbox用户对象

警告:如果你使用ADSI编辑工具、LDP工具或其他LDAPv3客户端工具,你错误的修改了活动目录对象的属性,这可能会导致一些问题的发生。这些问题或许会导致你必需重装Windows 2000 ServerWindows Server 2003Exchange 2000 ServerExchange 2003 Server或者其他的WindowsExchange。如果你是错误的修改了活动目录对象属性而引起的问题,Microsfot不能保证这个问题能被解决。修改这些属性会具有风险。

根据下列步骤重新创建SysytemMailbox{GUID}的活动目录帐号,该SystemMailbox邮箱对象将在你重新卸载然后装载Information Store数据库之后被建立在邮箱存储中。

注意:完成下列步骤,你必需安装Microsoft Windows 2000 Support Tools。另外你必需熟悉LDP工具。

首先,使用LDP.exe确定该邮箱存储的ObjectGUID。根据下面步骤确定该值。

1.       移动邮箱存储对角。你定位到这个对象,例如下列这个DN路径。

CN=Mailbox Store(server), CN=First Storage Group, CN=InformationStore, CN=Server, Cn Admingroup, CN=Administrative Groups, CN=OrganiztionName , CN=Microsoft Exchange, CN=Serivces, CN=Configuration ,DC=Domian, DC=com

2.       选择然后拷贝ObjectGUID属性的值。该属性是下列格式。

0be9b6db-21a5-4d75-aa53-cdfd5e6776f3

然后你确定邮箱存储的ObjectGUID,在活动目录中创建所替代的SystemMailbox{GUID}对象。

1.  启动Active Directory Users and Computer控制台。

2.  view菜单,确定Advanced Features被选中。

3.  找到Microsoft Exchange System Objects 容器。

4.  右击Microsoft Exchange System Object容器,然后在该容器中建立一个新的用户对象。

5.  如下设置Full nameUser Logon name

SystemMailbox{GUID}

   注意该GUID是通过从LDP工具被拷贝的邮箱存储的GUID值。

6.  设置GUID20个字符为Pre-Windows 2000用户登陆名。本文所使用的GUID格式如下。

0be9b6db-21a5-4d75-a

7.单击Netx弹出密码设置窗口。

8.指定登陆密码。

9.确定登陆被禁用,然后单击Next

10.校验Create an Exchange Mailbox选框被选中。

11.忽略别名。但是,选择正确的服务器和存储组,然后单击完成。

注意:下两个步骤是防止Recipient Update Service应用给这一新帐号一个错误的e-mail地址所必需的。如果Recipient Update Services通过邮箱建立被禁用,则之后操作步骤不是必需的。

12.右单击你刚建立的用户对象,然后单击Properties

13.单击清除Automatically update e-mail address复选框,然后应用。

注意:在Recipient Update Service更新新建帐号的e-mail proxy address属性之前这一步骤必需完成。

14.启动ADSI编辑器,然后找到新的SystemMailbox{GUID}用户以象。

15.右单击该用户对象,然后单击属性。

16.在Select a property to view列表中,单击mailNickname属性。

17.替换该被列出的mailNickname和正确的SystemMailbox{GUID}标识,你作为第5步骤中的Full nameUser Logon name。单击set,然后单击OK保存修改。此处标识如下例子。

SystemMailbox{0be9b6db-21a5-4d75-aa53-cdfd5e6776f3}

18.在Active Directory Users and Computer控制台和可用的Recipient Update Services中,确定Automatically Update e-mail address复选框被选中。

19.等待生成新用户对象的e-mail 地址。

20.之后用户e-mail地址被定义,确定e-mail地址被设置成SystemMailbox{GUID}@primary STMP domain

21.单击Exchange Advanced列表。然后单击选择Hide from address lists复选框。

22.单击Mailbox Right,选择Selft,然后单击选择Associated external account复选框。

23.单击Add,然后添加系统帐号。于是获取系统帐号Read permissionsFull mailbox user rights

24.单击OK两次应用用户帐号的这些变更设置。

之后在活动目录中创建替代的SystemMailboxGUID}对象,装载然后卸载受影响的information Store数据库。SytemMailbox{GUID}邮箱对象被在Exhcnage System Manager中的创建邮箱资源列表里。

 

注册exodbprx.dll组件

注册该组件必需执行下列操作:

1.  Exchange服务器上打开命令提示符。

2.  在命令提示符下输入下列命令行,然后按回车键:

Regsvr32 “C:\Program Files\Exchsrvr\bin\exodbprx.dll”

注意:C:\Program Files\Exchsrvr是你Exchange服务安装目录。

3.  单击OK


更多信息

 

当你根据解决方法这一章节中的步骤操作时,初始通过System Attendant服务建立的用户对象和手工创建的用户对象之间可能会有下列细小的不同之处。

System Attendant服务设置 masterAccountSID值是新建对象SID的值,而管理员只能手动设置该值为新建对象它自己的SID

System Attendant服务通常长期的维护该帐号的密码,而管理员手动新建的SystemMailbox只能保留该帐号密码为空。一个空密码可能会引起安全漏洞。

System Attendant服务设置msExchMailboxGUID值是该SystemMailbox对象的GUID。管理员手动帐号的msExchMailboxGUID值是随机的值。但这不会引起什么问题的发生,因为这些值不会相同。

deliveryMechanism值不能通过管理员设置。该行可以被管理员所接受,因为该属性是不可用的。

posted on 2005-07-01 10:53  杨斌  阅读(891)  评论(0)    收藏  举报

导航