New-MailboxRepairRequest:修复Exchange 2015/2013/2010中损坏的邮箱

时间:2020-01-09 10:46:50  来源:igfitidea点击:

Exchange管理员通常必须处理用户邮箱中的各种损坏和逻辑错误。此类逻辑错误出现在诸如同步错误,Outlook挂起,文件夹项目的不正确表示,项目编号错误,搜索和公用文件夹错误等问题中。

这些错误主要是由于Outlook上的故障而导致的,以防客户端在邮箱文件夹元素处理过程中错误地更新MAPI标志。大多数情况下,共享邮箱会同时发生这种情况,多个用户同时使用该邮箱。在大多数情况下,用户甚至可能不知道所连接的邮箱或者文件夹中是否存在错误,正式而言一切正常。但是,由于存在一些错误,用户在访问邮箱或者某些文件夹,查看或者删除电子邮件或者文件夹等时可能会遇到问题。

如果用户遇到此类问题,Exchange服务器的管理员应使用以下三种方法之一还原这种损坏的邮箱。

  • 将以缓存模式运行的Outlook中的数据导入到.PST文件,为有问题的用户删除并重新创建新邮箱,最后将数据从PST文件导入到新的Exchange邮箱。此方法假定在用户计算机上进行了一定程度的手动操作。提示。如何在Exchange 2010/2013中将数据导入和导出到PST文件
  • 完成"邮箱存储的卸载",并使用" Isinteg.exe"(信息存储完整性检查器)实用程序进行检查,该实用程序可以根据应用程序级别修复Exchange中的损坏。对于所有在断开数据库中分配邮箱的用户,此方法需要很长的邮件服务停机时间。笔记。在某些情况下,我们可以尝试将所有用户的邮箱移至正常的邮箱数据库。在这种情况下,我们可以在不禁用大量用户的情况下检查商店完整性。但是,由于各种原因,该技术并不总是适用。
  • 从备份还原Exchange数据库(如何备份Exchange 2013邮箱数据库),将数据从特定邮箱导入PST文件,然后将数据进一步传输到重新创建的邮箱。这种方法的一个缺点是,丢失了上次备份执行时间后到达用户邮箱的所有电子邮件。

当出现更便捷的功能来还原损坏的邮箱的逻辑结构时,Exchange Server管理员必须使用上述所有方法,直到Exchange 2010 SP1版本为止,新的PowerShell cmdlet" New-MailboxRepairRequest"。此cmdlet允许我们在应用程序级别上查找和修复Exchange数据库中的所有逻辑错误和损坏。我们可以搜索并修复数据库中某个邮箱和所有邮箱的所有错误。

在某些情况下,我们没有更新备份,New-MailboxRepairRequest命令无法修复损坏的邮箱。在这种情况下,我们可以使用Stellar Repair for Exchange软件,而不会丢失重要数据。用于Exchange的Stellar Repair是New-MailboxRepairRequest命令的最佳替代方法,它可以修复损坏的邮箱并将其导出到PST,Live Exchange和Office 365.

此外,当我们使用New-MailboxRepairRequest cmdlet时,不需要完全将邮件数据库置于脱机模式。每个数据库只有一个邮箱不可用,当前正在对其进行验证和完整性的邮箱。在执行上述恢复邮箱完整性的任何基本方法之前,我们绝对应该尝试使用此PoSh命令。

我们可以使用此cmdlet在所有受支持的Exchange 2010、2013和2015版本中查找,修复和监视损坏的邮箱。

New-MailboxRepairRequest cmdlet的语法如下:

New-MailboxRepairRequest -Mailbox  -CorruptionType <MailboxStoreCorruptionType[]> [-Archive ] [-Confirm []] [-DetectOnly ] [-DomainController ] [-WhatIf []]

Cmdlet允许我们在Exchange邮箱中查找和修复以下损坏类型:

  • 搜索文件夹中的SearchFolder错误;
  • AggregateCounts检查并更正文件夹中项目的数量及其大小;
  • FolderView文件夹视图所代表的内容不正确;
  • ProvisionedFolder文件夹逻辑结构损坏。

使用DetectOnly参数,我们可以检查一个邮箱或者邮箱数据库而无需执行任何操作,例如:

New-MailboxRepairRequest -Mailbox theitroad -DetectOnly -CorruptionType ProvisionedFolder, SearchFolder

以下示例将针对所有4种类型的损害启动theitroad用户邮箱分析和恢复过程。

New-MailboxRepairRequest -Mailbox theitroad -CorruptionType ProvisionedFolder, SearchFolder, AggregateCounts, Folderview

以下示例将针对所有4种类型的损害启动theitroad用户邮箱分析和恢复过程:

New-MailboxRepairRequest -Database “NYMailBase1” -CorruptionType ProvisionedFolder, SearchFolder, AggregateCounts, Folderview

该命令在后台模式下运行,其结果不会显示在PowerShell控制台中。我们可以通过taskID(RequestID)或者/并借助Windows事件日志(事件源:MSExchangeIS邮箱存储; EventID10059修复请求开始; EventID10048成功完成修复请求)来跟踪它。

以下EventID也可能有用(为了便于跟踪Exchange邮箱的恢复过程,可以将它们与源MSExchangeIS邮箱存储合并到自定义事件视图中)

  • 10044调配的文件夹的邮箱修复请求失败
  • 10045已配置的文件夹的数据库修复请求失败
  • 10046预置的文件夹修复请求已成功完成
  • 10047邮箱级修复请求已启动
  • 10048修复请求成功完成
  • 10049邮箱或者数据库修复请求失败,因为Exchange遇到数据库问题或者针对该数据库正在运行其他任务
  • 10050邮箱修复请求任务已跳过邮箱
  • 10051由于修复了数据库,数据库修复请求被取消。
  • 10059数据库级修复请求已启动
  • 10062检测到腐败
  • 10064公用文件夹修复请求已启动

特殊cmdlet" Get-MailboxRepairRequest"出现在Exchange 2013中,它使我们可以获取邮箱修复任务的状态。

New-MailboxRepairRequest cmdlet启动后,它的功能之一就是,在不停止Exchange Information Store服务并卸载邮箱数据库的情况下,不能中断邮箱修复过程。

如果服务器上有多个邮箱数据库,则为了维持Exchange服务器的性能,建议不要对大量数据库同时运行New-MailboxRepairRequest(尽管其中一个仅支持一个MailboxRepairRequest进程)数据库和每台服务器最多100个维修请求)。

让我们来看一个小案例,作为cmdlet使用的面向实践的示例。

Exchange 2015用户遇到无法查看其中一个Outlook文件夹中的邮件。指定的文件夹已从邮箱备份中恢复。但是,似乎无法借助Outlook/Outlook Web App/MFCMAPI删除此文件夹(软删除或者硬删除)。当我们尝试删除Outlook 2015中的文件夹时,会出现以下错误:

无法删除此文件夹。右键单击该文件夹,然后单击"属性"以检查我们对该文件夹的权限。请与文件夹所有者或者管理员联系以更改权限。

Outlook正在同步对此文件夹中的项目所做的本地更改。我们必须先完成与服务器的同步,才能删除此文件夹

要检查和还原Exchange邮箱的完整性,运行了以下PoSh命令:

New-MailboxRepairRequest -Mailbox [email protected] -CorruptionType ProvisionedFolder,SearchFolder,AggregateCounts,Folderview

成功完成恢复操作(事件ID 10048)后,损坏的文件夹立即从Outlook Web App中消失。至于Outlook,在这里我们必须删除本地缓存(ost文件)以正确显示邮箱。