如何导出邮箱数据

 

适用于: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007

上一次修改主题: 2009-08-28

本主题说明如何使用 Exchange 命令行管理程序中的 Export-Mailbox cmdlet 将邮箱数据从一个邮箱导出到另一邮箱的文件夹中。在 Exchange Server Service Pack 1 (SP1) 中,Export-Mailbox cmdlet 增加了新功能。

note注意:
您无法使用 Exchange 管理控制台导出邮箱数据。

导出哪些数据

默认情况下,Export-Mailbox cmdlet 将所有空文件夹、特殊文件夹及其子文件夹导出到目标位置。若要指定要在导出中包含哪些文件夹,请使用 IncludeFolders 参数。若要指定排除在导出外的文件夹,请使用 ExcludeFolders 参数。

默认情况下,使用 Export-Mailbox cmdlet 时会导出以下特殊文件夹:

  • Inbox

  • Deleted Items

  • Drafts

  • Junk E-Mail

  • Outbox

  • Sent Items

  • Journal

  • Calendar

  • 联系人

  • Notes

  • Tasks

Export-Mailbox cmdlet 可导出所有的邮件类型,包括邮件、日历项、联系人、通讯组列表、日记条目、任务、便笺和文档。但是,Export-Mailbox cmdlet 不会导出规则。

Export-Mailbox cmdlet 还将从转储程序导出邮件。转储程序中的邮件会转换为数据导出到的目标文件夹或 .pst 文件中的常规邮件。

note注意:
如果您使用任何关键字参数,Export-Mailbox cmdlet 将首先导出所有的邮件,包括转储程序中的邮件,然后搜索目标邮箱寻找符合关键字条件的邮件。源邮箱上转储程序中的邮件会转换为目标邮箱上“已删除邮件”文件夹中的常规邮件,并且也要按关键字进行搜索。然后,Export-Mailbox cmdlet 将删除目标邮箱中与关键字条件不匹配的邮件。如果同时使用 DeleteContent 参数,则 Export-Mailbox 将删除源邮箱中与关键字条件匹配的邮件。

有关传输转储程序中的邮件的详细信息,请参阅如何恢复已删除的邮件

数据的导出位置

将数据导出到目标邮箱的某个子文件夹和指定的文件夹中。若要指定目标邮箱,请使用 TargetMailbox 参数。若要指定目标邮箱上的文件夹,请使用 TargetFolder 参数。TargetFolder 参数可以指定将在目标邮箱上创建的顶级邮箱文件夹。此文件夹包含一个名为 Recovered Data - <Source_Mailbox_Alias> - <Date_Time_Stamp> 的子文件夹。这个子文件夹包含导出的文件夹和邮件。

如果指定的目标文件夹在目标邮箱中已经存在,则导出的数据将添加到现有文件夹中。如果目标文件夹不存在,将创建该目标文件夹。

Exchange 2007 Service Pack 1 (SP1) 新增功能

Exchange 2007 Service Pack 1 (SP1) 引入了以下用于导出邮箱数据的功能:

  • 您能够将邮箱中的邮箱数据导出到 .pst 文件。若要导出到 .pst 文件中,请使用 PSTFolderPath 参数指定要将数据导出到的 .pst 文件的路径。无法将数据从恢复存储组 (RSG) 中的邮箱导出到 .pst 文件。

  • 您可以使用 AllowMerge 参数合并导出到现有目标文件夹的数据。在 Exchange 2007 SP1 中,如果指定 AllowMerge 参数,则子文件夹的名称将不包含日期-时间戳。在 Exchange 2007 SP1 中,您可以指定要将数据导出到的 .pst 文件的路径,而不是指定目标邮箱和目标文件夹。

  • 可以使用 DeleteAssociatedMessages 参数删除导出过程中关联的邮件。或者,可以使用 IncludeAssociatedMessages 参数包含导出过程中关联的邮件。关联的邮件包含隐藏数据,其中包含有关规则、视图和表单的信息。

  • 如果您使用 DeleteContent 参数,但未指定 TargetMailbox 参数,则可以删除源邮箱中的内容,而不必将其导出到其他邮箱。

  • 您可以按收件人或发件人对导出的邮件进行筛选。要按收件人进行筛选,请使用 RecipientKeywords 参数。要按发件人进行筛选,请使用 SenderKeywords 参数。

有关 Exchange 2007 SP1 引入的新功能的详细信息,请参阅Export-Mailbox主题。

有关 Exchange 2007 SP1 之前的功能的详细信息,请参阅Export-Mailbox (RTM)主题。

开始之前

若要执行此步骤,必须为您使用的帐户委派下列角色:

  • Exchange Server Administrators 角色以及源服务器和目标服务器的本地 Administrators 组

  • 对源邮箱和目标邮箱的完全访问权限

有关管理 Exchange 2007 所需的权限、角色委派以及权利的详细信息,请参阅权限注意事项

另外,在执行此步骤之前,应了解下列内容:

  • 若要使用 Export-Mailbox cmdlet,源邮箱和目标邮箱必须位于同一林中。不能将数据从一个林中的邮箱导出到不同林中的邮箱。

  • 无法从公用文件夹数据库导出数据。

  • 要授予对某个邮箱的完全访问权限,请使用 Add-MailboxPermission cmdlet,并对 AccessRights 参数指定 FullAccess。例如,如果 Admin01 需要将 John 邮箱中的数据导出到名为 Export 的邮箱中,必须首先运行下列命令:

    Add-MailboxPermission -Identity john -User Admin01 -AccessRights FullAccess
    Add-MailboxPermission -Identity Export -User Admin01 -AccessRights FullAccess
    
  • 若要导出 Exchange 2003 或 Exchange 2000 邮箱中的数据,必须为您使用的帐户委派该服务器所在的管理组的 Exchange 管理员角色。

  • 若要从 .pst 文件导出数据,必须从安装了下列软件的 32 位计算机上运行 Export-Mailbox cmdlet:

    • Exchange 管理工具的 32 位版本

    • Outlook 2003 Service Pack 2 (SP2) 或 Outlook 2007

    有关 32 位 Exchange 2007 管理工具下载的详细信息,请参阅 Microsoft Exchange Server 2007 Management Tools (32-Bit)

  • 如果将数据导出到另一邮箱的文件夹中,则运行该命令前必须确保指定的目标邮箱存在。

步骤

Exchange 2007 SP1

在 Exchange 2007 SP1 中使用 Exchange 命令行管理程序导出邮箱数据的步骤

  • 若要将邮箱的特殊文件夹和空文件夹导出到目标邮箱的某个文件夹中,请运行以下命令:

    Export-Mailbox -Identity <MailboxIdParameter> -TargetMailbox <MailboxIdParameter> -TargetFolder <Folder_Name>
    
  • 若要将数据导出到 .pst 文件,请运行以下命令:

    Export-Mailbox -Identity <MailboxIdParameter> -PSTFolderPath <Path_Of_PST_Folder>\<File_Name>.pst
    
  • 要导出一组邮箱(例如用户职务以“VP”开头的所有邮箱)中的数据,请运行以下命令:

    Get-User | where { $_.Title -ilike "VP*" } | Export-Mailbox -TargetFolder <Folder_Name> -TargetMailbox <MailboxIdParameter>
    
  • 若要将特定日期范围内收到的数据导出到 .pst 文件,请运行以下命令:

    Export-Mailbox -Identity <MailboxIdParameter> -StartDate "<Month/Day/Year>" -EndDate "<Month/Day/Year>" -PSTFolderPath <Path_Of_PST_Folder>\<File_Name>.pst
    
  • 要只导出“已发送邮件”文件夹中的数据,请运行以下命令:

    Export-Mailbox -Identity <MailboxIdParameter> -IncludeFolders '\Sent Items' -TargetFolder <Target_Folder_Name> -TargetMailbox <MailboxIdParameter>
    
  • 要在导出时排除某些文件夹(如排除“垃圾邮件”和“联系人”文件夹中的项目),请运行以下命令:

    Export-Mailbox -TargetMailbox <MailboxIdParameter> -TargetFolder <Target_Folder_Name> -ExcludeFolders "\Junk E-Mail","\Contacts"
    
  • 要使用筛选器指定在导出时要包含源邮箱中的哪些项,请运行以下命令:

    Export-Mailbox -Identity <MailboxIdParameter> -TargetMailbox <MailboxIdParameter> -TargetFolder <Target_Folder_Name> -ContentKeywords "<String[]>" -AttachmentFilenames "<String[]>" -StartDate "<Month/Day/Year> <Time>" -RecipientKeywords <String[]>
    
  • 要查找并删除一组邮箱(例如,某个数据库上的所有邮箱)中的项目,请运行以下命令:

    Get-Mailbox -Database DB1 | Export-Mailbox -TargetMailbox ExportMailbox -TargetFolder VirusData -SubjectKeywords "Virus message" -DeleteContent
    

    此示例将首先获取数据库 DB1 中的所有邮箱,然后搜索主题行中包含字符串“Virus message”的邮件。它会将这些邮件导出到 ExportMailbox 邮箱中,并从源邮箱中删除这些邮件。

  • 要查找并删除一组邮箱(例如,某个数据库上的所有邮箱)中的邮件,并且不将这些邮件导出到其他邮箱,请运行以下命令:

    Get-Mailbox -Database DB1 | Export-Mailbox -SubjectKeywords "Virus message" -DeleteContent
    

    此示例将首先获取数据库 DB1 中的所有邮箱,然后从主题中搜索包含字符串“Virus message”的邮件,并删除这些邮件。

  • 要从 Marketing 组织单位中用户的所有邮箱导出数据,请运行以下命令:

    Get-Mailbox -OrganizationalUnit Marketing | Export-Mailbox -PSTFolderPath C:\PSTFiles
    

    此示例将每个邮箱中的数据导出到 C:\PSTFiles 目录下的一个单独 .pst 文件。每个 .pst 文件的名称都将是 <别名> .pst。

有关语法和参数的详细信息,请参阅 Export-Mailbox 参考主题。

Exchange 2007 RTM

在 Exchange 2007 RTM 中使用 Exchange 命令行管理程序导出邮箱数据的步骤

  • 若要将邮箱的特殊文件夹和空文件夹导出到目标邮箱的某个文件夹中,请运行以下命令:

    Export-Mailbox -Identity <MailboxIdParameter> -TargetMailbox ExportMailbox -TargetFolder <Folder_Name>
    
  • 要导出一组邮箱(例如用户职务以“VP”开头的所有邮箱)中的数据,请运行以下命令:

    Get-User | where { $_.Title -ilike "VP*" } | Export-Mailbox -TargetFolder <Folder_Name> -TargetMailbox <MailboxIdParameter>
    
  • 若要导出特定日期范围内收到的数据,请运行以下命令:

    Export-Mailbox -Identity <MailboxIdParameter> -StartDate "<Month/Day/Year>" -EndDate "<Month/Day/Year>" -TargetFolder <Folder_Name> -TargetMailbox <MailboxIdParameter>
    
  • 要只导出“已发送邮件”文件夹中的数据,请运行以下命令:

    Export-Mailbox -Identity <MailboxIdParameter> -IncludeFolders '\Sent Items' -TargetFolder <Target_Folder_Name> -TargetMailbox <MailboxIdParameter>
    
  • 要在导出时排除某些文件夹(如排除“垃圾邮件”和“联系人”文件夹中的项目),请运行以下命令:

    Export-Mailbox -TargetMailbox <MailboxIdParameter> -TargetFolder <Target_Folder_Name> -ExcludeFolders "\Junk E-Mail","\Contacts"
    
  • 要使用筛选器指定在导出时要包含源邮箱中的哪些项,请运行以下命令:

    Export-Mailbox -Identity <MailboxIdParameter> -TargetMailbox <MailboxIdParameter> -TargetFolder <Target_Folder_Name> -ContentKeywords "<String[]>" -AttachmentFilenames "<String[]>" -StartDate "<Month/Day/Year> <Time>"
    
  • 要查找并删除一组邮箱(例如,某个数据库上的所有邮箱)中的项目,请运行以下命令:

    Get-Mailbox -Database DB1 | Export-Mailbox -TargetMailbox ExportMailbox -TargetFolder VirusData -SubjectKeywords "Virus message" -DeleteContent
    

    此示例将首先获取数据库 DB1 中的所有邮箱,然后搜索主题中包含字符串“Virus message”的邮件。它会将这些邮件导出到 ExportMailbox 邮箱中,并从源邮箱中删除这些邮件。

有关语法和参数的详细信息,请参阅 Export-Mailbox (RTM) 参考主题。

取代 ExMerge.exe 的解决方案

在 Exchange 2003 或 Exchange 2000 中,您可以使用 Microsoft Exchange Server 邮箱合并向导 (ExMerge.exe) 导出邮箱数据。下表列出了在 Exchange 2003 或 Exchange 2000 中使用 ExMerge.exe 的方案,以及在 Exchange 2007 中执行相应任务的解决方案。

Exchange 2003 和 Exchange 2000 中的方案 Exchange 2003 和 Exchange 2000 资源 Exchange 2007 解决方案

在恢复方案中,在 Exchange 2003 或 Exchange 2000 中使用 ExMerge.exe 可将已恢复的数据从恢复存储组移动到其他数据库。

若要在 Exchange 2007 中执行此任务,请使用 Restore-Mailbox cmdlet。有关详细信息,请参阅如何使用恢复存储组恢复邮箱

使用 Exchange 2003 或 Exchange 2000 中的 ExMerge.exe 可以将用户数据从损坏的数据库导出到 .pst 文件,然后从 .pst 文件导出到新数据库中。

有关 Exchange 2003 或 Exchange 2000 方案的信息,请参阅 Microsoft 知识库文章 313184,如何在单个网站中的 Exchange 2000 Server 或 Exchange Server 2003 上恢复信息存储

若要在 Exchange 2007 中执行此任务,请使用 Restore-Mailbox cmdlet 通过备份还原数据,然后使用 Move-Mailbox cmdlet。有关详细信息,请参阅 Restore-MailboxMove-Mailbox

在 Exchange 2003 或 Exchange 2000 中使用 ExMerge.exe 可以将邮箱移动到其他服务器。

有关 Exchange 2003 或 Exchange 2000 方案的信息,请参阅 Microsoft 知识库文章 328810,在服务器之间移动邮箱

若要在 Exchange 2007 中执行此任务,请使用移动邮箱向导或 Move-Mailbox cmdlet。有关详细信息,请参阅如何移动单个林中的邮箱如何在林之间移动邮箱

使用 Exchange 2003 或 Exchange 2000 中的 ExMerge.exe 可以删除发送给您的 Exchange 组织中用户的特定邮件。例如,您可能要删除病毒邮件或不慎发送的机密邮件。

有关 Exchange 2003 或 Exchange 2000 方案的详细信息,请参阅 Microsoft 知识库文章 328202,如何使用 ExMerge.exe 工具从邮箱中删除感染病毒的邮件

若要在 Exchange 2007 中执行此任务,请将 Export-Mailbox cmdlet 与 DeleteContent 参数以及任意内容筛选参数(如 AllContentKeywordsAttachmentFilenamesContentKeywordsSubjectKeywordsStartDateEndDate)结合使用。有关详细信息,请参阅 Export-Mailbox

使用 Exchange 2003 或 Exchange 2000 中的 ExMerge.exe 可以查找发送到您的 Exchange 组织中用户的特定邮件,或者查找主题、邮件正文或附件中包含特定词语的所有邮件。

有关 Exchange 2003 或 Exchange 2000 方案的详细信息,请参阅 Microsoft 知识库文章 246916,XADM:如何查找包含特定邮件的邮箱

若要在 Exchange 2007 中执行此任务,请将 Export-Mailbox cmdlet 与任意内容筛选参数(如 AllContentKeywordsAttachmentFilenamesContentKeywordsSubjectKeywordsStartDateEndDate)结合使用,但是不要与 DeleteContent 参数结合使用。有关详细信息,请参阅 Export-Mailbox

如果在移动邮箱的过程中遇到任何问题,请将 Exchange 2003 或 Exchange 2000 中的 ExMerge.exe 作为备用方法来还原邮箱数据。

若要在 Exchange 2007 中执行此任务,请使用 Restore-Mailbox cmdlet 来还原邮箱数据,并使用 Move-Mailbox cmdlet 移动邮箱。有关详细信息,请参阅 Restore-MailboxMove-Mailbox

使用 Exchange 2003 或 Exchange 2000 中的 ExMerge.exe 可以将数据导出到 .pst 文件中。例如,如果您使用驻留方案,则可能要将邮箱内容发送给组织中以前的用户。

要在 Exchange 2007 SP1 中执行此任务,请使用 PSTFolderPath 参数。

要在 Exchange 2007 RTM 中执行此任务,您有两种选择:

  • 登录到运行 Microsoft Outlook 的邮箱,然后使用 Outlook 将数据导出到 .pst 文件。

  • 使用 Export-Mailbox cmdlet 将几个邮箱中的数据导出到一个单独的邮箱中,然后登录到该邮箱,并使用 Outlook 将数据导出到 .pst 文件中。有关此方案的详细信息,请参阅 Exchange Server 工作组博客文章 Exchange Server 2007 Export Mailbox task

    note注意:
    UNRESOLVED_TOKEN_VAL(exBlog)

详细信息

有关从 .pst 文件导入邮箱数据的详细信息,请参阅如何导入邮箱数据