公用文件夹被意外删除后如何恢复(第 1 部分:恢复过程)

原文发布于 2012 年 2 月 6 日(星期一)

概述

此博客系列包括两个部分,概述了在从环境中意外删除一个或多个公用文件夹时,管理员可以使用的一些恢复选项。第一部分介绍这些选项,第二部分概述促成这些选项的公用文件夹的体系结构方面的内容。

简介

在早期版本的 Exchange 中,邮箱和邮箱数据库恢复是一个漫长而又复杂的过程,涉及备份、恢复服务器和更改 Active Directory。此产品的后续版本围绕恢复(恢复存储组/数据库、数据库复制等)引入了越来越多的功能,在我们目前所处的这个阶段,还原邮箱看似一个微不足道的操作,而还原邮箱数据库几乎闻所未闻。但邮箱并不是存储在 Exchange Server 2010 中的邮箱服务器上的唯一数据,还原公用文件夹和公用文件夹数据库的过程与还原邮箱的过程大不相同。

恢复选项回顾

前两个恢复选项在 TechNet 或 Exchange 团队博客网站的其他地方有详细说明,所以我在这里只是列出它们,而将重心转移到此博客的真正目的上。Exchange Server 2010 中的公用文件夹和公用文件夹数据库的还原选项如下所示,从最简单到最复杂依次为:

  1. 通过 Outlook 恢复删除的文件夹(详见 https://technet.microsoft.com/zh-cn/magazine/dd553036.aspx(该链接可能指向英文页面))。

    注意:Exchange Server 2010 Service Pack 2 修正了一个问题,该问题曾导致用户无法使用 Outlook 恢复已删除的公用文件夹。这也是希望您尽早将 Exchange Server 2010 系统升级到 SP2 的另一个原因。

  2. 通过 ExFolders 恢复删除的文件夹 (https://blogs.technet.com/b/exchange/archive/2009/12/04/3408943.aspx(该链接可能指向英文页面))。

  3. 通过公用文件夹数据库还原恢复文件夹。

第一个选项最简单且最明显。如果某个最终用户不小心删除了一个文件夹,他或她应该能够使用 Outlook 撤消删除该文件夹。如果不成功,则管理员应该能够使用 ExFolders 恢复该文件夹。但假如这些选项都不适合您的情况怎么办?如果最终用户没有意识到他或她删除了文件夹,而一个月时间已经过去了,怎么办?或者,如果您的组织已经更改了已删除的公用文件夹的保留设置,并且基本上消除了转储程序,又该怎么办?在这种情况下,您如何恢复公用文件夹呢?

恢复选项

恢复公用文件夹的核心是一个令人痛苦的真相:从组织中删除公用文件夹后,并非仅仅通过还原公用文件夹数据库的旧版本就能恢复它。如果您从备份中还原一个公用文件夹数据库,并将它放回到生产环境中去,则您只有等到服务器收到复制消息后才能看到公用文件夹。因为公用文件夹的层次结构(环境中所有文件夹的列表)中不再包括已删除的文件夹,所以目标服务器上即使有文件夹的副本,从 Exchange 的角度来看也并不存在。一旦该公用文件夹数据库收到层次结构更新,它就会看到,那些公用文件夹不在层次结构中,而存储区将再次删除该公用文件夹。既然您不能通过公用文件夹管理控制台(甚至通过 adsiedit.msc)来编辑层次结构,您就不能手动将该公用文件夹添加回来。因此,鉴于这一限制,我们如何来恢复该公用文件夹呢?

考虑以下几点:

  • 如果您不是将每个文件夹复制到每个数据库,则需要删除所有当前数据库,然后从备份中恢复任何包含唯一内容的数据库。此办法仅在您有最近备份时才有效,当然,也需要您导出任何自该备份以来生成的内容,这是因为您将要删除所有现有数据库。此删除操作是必要的,这是因为如果一个已还原的公用文件夹存储从现有公用文件夹存储之一收到层次结构复制,则整个工作将化为泡影。
  • 如果您确实将所有文件夹复制到环境中的所有存储,则可以删除所有存储并且只还原一个数据库,然后将该数据库的内容复制到其他服务器。这同样取决于所有数据库都有重复内容,而您必须删除所有现有数据库,然后才能从备份中还原。
  • 您可以将公用文件夹数据库的备份还原到独立的 Exchange 环境,通过 Outlook 连接到公用文件夹数据库,将所有内容导出到一系列 PST 中,在生产环境中用已删除文件夹的名称创建新文件夹,然后导入所有内容。这显然是一个需要一些手动操作的过程,大多数管理员并不愿意这么做。

建议的恢复过程

值得庆幸的是,有一个过程相当简单,可以就地执行,而且不费您吹灰之力。

  1. 在环境中选择一个现有的公用文件夹服务器。[使用现有服务器可使过程稍稍简化。]您要将此系统与其复制伙伴隔离,因此请选择一个不是作为大量需复制内容的源的系统。

  2. 使用注册表编辑器,将复制注册表项 (HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\MSExchangeIS\<服务器名称>\Public- <公用存储的 GUID> ) 的值设置为 0(零)。

    注意:如果 DWORD 项不存在,则可能需要创建它。“复制不会发生在组织中的一台 Exchange 服务器上”(https://support.microsoft.com/kb/812294/zh-cn) 一文提供了有关复制注册表项的更多信息。此注册表项也适用于 Exchange Server 2007 和 2010。

  3. 使用正常还原过程就地还原公用文件夹数据库。

  4. 使用 Outlook 客户端,登录到将已还原公用文件夹数据库作为其默认公用文件夹存储的邮箱(需要这样做才能看到已还原的文件夹)。如果您不具有将该公用文件夹数据库作为其默认文件夹数据库的邮箱数据库,则创建一个新的邮箱数据库(推荐),或者更改现有邮箱数据库来使用新近还原的公用文件夹数据库。

  5. 如有必要,请单击导航屏幕左下方的文件夹图标,然后展开公用文件夹节点。

  6. 将每个要还原的文件夹复制到公用文件夹层次结构中的另一个位置。如果您要还原整个层次结构,则只需按住 Ctrl 键单击并拖动根文件夹来创建所有子文件夹的新副本。虽然新文件夹的名称将与原始文件夹类似,但基础文件夹 ID (FID) 是不同的。

  7. 创建了所有文件夹的副本后,验证副本列表是否包括所有需要的目标(适当时重新配置)。

  8. 至此,现在可以安全地将该服务器重新引入生产环境中。为此,请卸载公用文件夹数据库,删除复制注册表项(或将其设置为 1),然后重新装载数据库。

  9. 一旦层次结构复制到服务器上,原始文件夹将再次消失,但这些文件夹的副本将被复制到所有复制伙伴。

您可能需要将启用了邮件的公用文件夹添加回通讯组,因为其 SMTP 地址可能不同于原始文件夹上的地址。最终用户也需要在 Outlook 中重新创建公用文件夹收藏夹。

摘要

从意外的公用文件夹删除中恢复并非易事,尤其是当您没有考虑到层次结构复制因素时。通过还原到一个隔离的环境,然后克隆要还原的文件夹,您可以解决这一限制,还原丢失的内容。在下一篇博客文章中,我将介绍公用文件夹(包括复制、修订号和复制状态表)的基础体系结构,以表明为何这些步骤非常必要。

John Rodriguez
首席高级现场工程师
Microsoft 高级技术支持

这是一篇本地化的博客文章。请访问 Recovering Public Folders After Accidental Deletion (Part 1: Recovery Process) 以查看原文