在 Exchange Server 2010 中执行多邮箱搜索时出错:用户没有交换邮箱

原始 KB 编号: 2702446

症状

请考虑以下情况:

  • 在 Microsoft Exchange Server 2010 企业版或 Exchange Server 2010 标准版中启动 Exchange 控制面板 (ECP) 。
  • 执行多邮箱搜索。
  • 多邮箱搜索使用系统邮箱、发现搜索邮箱或联合邮箱作为搜索目标。

在这种情况下,你可能会收到以下错误消息:

用户没有交换邮箱

此外,应用程序日志中记录了以下事件:

Log Name: Application
Source: MSExchange Configuration Cmdlet - Remote Management
Event ID: 5
Task Category: General
Level: Error
Keywords: Classic
Description:
(PID 6268, Thread 53) Task New-MailboxSearch throwing terminating exception at stage Microsoft.Exchange.Data.Storage.UserHasNoMailboxException: The user does not have an Exchange mailbox.
at Microsoft.Exchange.Data.Storage.ExchangePrincipal.InternalFromADUser(ADUser user, ADObjectId mdb, DatabaseLocationInfo databaseLocationInfo, Boolean ignoreSiteBoundary)
at Microsoft.Exchange.Data.Storage.Infoworker.MailboxSearch.MailboxDataStore.OpenMailboxSession(ADUser adUser)
at Microsoft.Exchange.Data.Storage.Infoworker.MailboxSearch.MailboxDataStore..ctor(ADUser adUser)
at Microsoft.Exchange.Data.Storage.Infoworker.MailboxSearch.MailboxDataProvider.OpenMailboxStore()
at Microsoft.Exchange.Data.Storage.Infoworker.MailboxSearch.MailboxDataProvider.Exists[T](String name)
at Microsoft.Exchange.Management.Tasks.NewMailboxSearch.PreSaveValidate(SearchObject savedObject)
at Microsoft.Exchange.Management.Tasks.NewMailboxSearch.InternalEndProcessing(). Exception: {4c1ab22a-bd1d-41e9-b178-5e75ffd14563}

原因

如果以下一个或多个邮箱处于不一致状态,因为未为 HomeMDB 属性设置值,则可能会出现此问题:

  • 一个或多个系统邮箱
  • 联合邮箱
  • 发现搜索邮箱

解决方案

若要解决此问题,请按照下列步骤操作:

  1. 启动 ECP。

  2. 验证一个或多个邮箱是否处于不一致状态。 为此,请键入以下 cmdlet,然后按 Enter:

    Get-Mailbox -Arbitration |fl name, alias
    

    注意

    你可能会收到类似于以下内容的错误消息。 此错误消息确认一个或多个系统邮箱或联合邮箱处于不一致状态:

    警告:对象 SystemMailbox{1f05a927-9daf-4003-9bf7-036822f96290} 已损坏,已损坏
    处于不一致状态。 发生以下验证错误:
    警告:数据库在 UserMailbox 上是必需的。
    警告:数据库在 UserMailbox 上是必需的。

  3. 验证邮箱的属性 HomeMDB 值是否缺失。 为此,请在 ECP 中键入以下 cmdlet,然后按 Enter:

        Get-Mailbox |fl name, alias
    

    注意

    以下错误消息指示缺少 属性的值 HomeMDB
    UserMailbox 上必须提供数据库

  4. HomeMDB复制与系统邮箱、联合邮箱或发现搜索邮箱相同的数据库中邮箱的属性值。 为此,请按照下列步骤操作:

    1. 单击“开始”,在“搜索程序和文件”框中键入 Adsi Edit,然后按 Enter。

    2. “操作”菜单上,单击“连接到”

    3. 单击 “选择或键入域或服务器”,选择所需的服务器,然后单击“ 确定”。

    4. 展开 “默认命名上下文”,然后单击以下项:

      DC=domain,DC=com

    5. 双击“ CN=用户”。

    6. 右键单击用户邮箱,然后单击“ 属性”。

    7. “属性”下,单击“ 主页MDB>编辑”。

    8. 复制属性的值 HomeMDB ,然后单击“ 确定 ”两次。

  5. HomeMDB 系统邮箱、联合邮箱或发现搜索邮箱帐户上设置属性值。 为此,请按照下列步骤操作:

    1. 在 ADSI 编辑中,右键单击系统邮箱、联合邮箱或发现搜索邮箱的帐户,然后单击“ 属性”。
    2. “属性”下,单击“ 主页MDB>编辑”。
    3. 键入或粘贴 HomeMDB 在步骤 4 中复制的属性值。
    4. 单击 “确定” 两次。
  6. 文件菜单上,单击退出

  7. 复制林。 为此,请在提升的命令提示符下键入以下 cmdlet,然后按 Enter:

    repadmin /syncall /e
    

更多信息

有关 属性的详细信息 HomeMDB ,请参阅 HomeMDB 属性

有关当系统助理邮箱上缺少属性的值 HomeMDB 时可能发生的问题的详细信息,请参阅 缺少系统助理 homeMDB 属性