在日常工作中,有时会收到领导的一些特殊要求,要求备份某个用户的所有邮件(邮箱服务器未做邮件备份),这时需要从用户本地备份PST文件,除此之外还需要备份服务器上用户的邮件(本地OST文件)。在未知用户密码及不想让用户知晓的情况下,可以通过EMS命令来操作。


邮箱数据的导出:

对于 Exchange Server 2010 SP1 来讲,直接提供了用户邮箱导出为 PST 文件的功能(利用邮箱导出请求命令来完成)。导出的 PST 文件被要求放置在一个 UNC 路径下的网络存储位置,这样就避免了占用 Exchange Server 2010 服务器的自身空间。若想存放在exchange服务器本地,也需要使用UNC方式指定路径,如"\\localhost\outlook\xxx.pst"

首先,要明确的是 Exchange Server 2010 SP1 不提供在 EMC 中进行用户邮箱导出操作功能。要在 Exchange Server 2010 SP1 中使用用户邮箱导出功能,只能使用 EMS 进行操作。而且操作的 Exchange 服务器管理员必须要成为“邮箱导入导出角色”。默认情况下,Exchange 邮件系统中的任何用户和组都不属于这一角色。可以通过以下命令使用户成为“邮箱导入导出角色”。

以Administrator用户账户分配“邮箱导入导出角色”为例,命令如下:
New-ManagementRoleAssignment -Name "Import Export_Domain Admins" -User "Administrator" -Role "Mailbox Import Export"
Exchange2010 SP1及以上邮箱的数据导出与导入_第1张图片

若执行完后,找不到New-MailboxExportRequest命令,需要重启EMS

  接下来通过创建邮箱导出请求对邮箱进行导出。创建导出请求的命令如下:New-MailboxExportRequest
注意:您需要向在其中导出或导入邮箱的网络共享授予对“Exchange 受信任子系统”组的读/写权限。如果您不授予此权限,则将收到一条错误消息,指示 Exchange 无法建立与目标邮箱的连接。

Exchange2010 SP1及以上邮箱的数据导出与导入_第2张图片

命令如下:New-MailboxExportRequest -Mailbox qiong.chen -FilePath \\10.100.x.x\share\111\chenqiong.pst

需要注意,邮箱导出请求创建之后,即使导出操作已经完成,这些导出请求是不会被自动删除的。可以通过以下命令查看现有的邮箱导出请求:Get-MailboxExportRequest

可以看到之前创建的邮箱导出请求已存在于列表中。对于已完成的邮箱导出请求,已经没有必要继续存在请求列表中,可以使用以下命名将其删除:Remove-MailboxExportRequest

Remove-MailboxExportRequest -Identity "qiong.chen\mailboxexport"

Exchange2010 SP1及以上邮箱的数据导出与导入_第3张图片

  导出完成后,可以在Outlook里附加PST文件,可以查看到里面的邮件,如下:

Exchange2010 SP1及以上邮箱的数据导出与导入_第4张图片

同时,New-MailboxExportRequest 还支持将用户邮箱中的特定文件夹导出为PST,如:将用户“qiong.chen”的“收件箱”导出到 PST:
New-MailboxExportRequest -Mailbox qiong.chen -IncludeFolders "#Inbox#" -FilePath \\10.100.x.x\share\111\chenqiong_inbox.pst

示例 1

本示例将用户 Ayla Kol 的主邮箱导出到 SERVER01 的网络共享文件夹 PSTFileShare 上的 .pst 文件。

New-MailboxExportRequest -Mailbox AylaKol -FilePath "\\SERVER01\PSTFileShare\Ayla_Recovered.pst"
示例 2

本示例将用户 Kweku 的存档导出到 SERVER01 的网络共享文件夹 PSTFileShare 上的 .pst 文件。

New-MailboxExportRequest -Mailbox Kweku -FilePath "\\SERVER01\PSTFileShare\Kweku_Archive.pst" -IsArchive
示例 3

本示例导出用户 Tony 在 2010 年 1 月 1 日之前收到的邮件正文中包含“公司”和“利润”的邮件。

有关如何使用 ContentFilter 参数的详细信息,请参阅 -ContentFilter 参数的可筛选属性。

New-MailboxExportRequest -Mailbox Tony -ContentFilter {(body -like "*company*") -and (body -like "*profit*") -and (Received -lt "01/01/2010")} -FilePath "\\SERVER01\PSTFileShare\Tony_CompanyProfits.pst"
示例 4

本示例将 Kweku 的收件箱中的所有邮件导出到 .pst 文件 LegalHold。

New-MailboxExportRequest -Mailbox Kweku -IncludeFolders "#Inbox#" -FilePath \\SERVER01\PSTFileShare\Kweku\LegalHold.pst

http://support.microsoft.com/kb/2604283/zh-cn

http://technet.microsoft.com/zh-CN/library/ff607299(v=exchg.141).aspx


邮箱数据的导入:

使用 New-MailboxImportRequest cmdlet 可以开始将 .pst 文件导入到邮箱或存档。您可以为每个邮箱创建多个邮箱导入请求,并且每个邮箱导入请求必须具有唯一的名称。Microsoft Exchange 最多可以为邮箱导入请求自动生成 10 个唯一名称。但是,要为一个邮箱创建 10 个以上的导入请求,您需要在创建导入请求时指定唯一名称,或者可以先使用 Remove-MailboxExportRequest cmdlet 删除现有的导入请求,然后再创建具有默认请求 <别名>\MailboxImportX(其中 X = 0–9)的新导入请求。

默认情况下,如果目标邮箱或目标存档中存在匹配项,导入操作将检查重复的项目,并且不会将数据从 .pst 文件复制到邮箱或存档。

  如果想把某个outlook.pst文件导入到mis1的邮箱,首先,把outlook.pst文件放到共享文件夹(\\192.168.10.10\outlook),授予outlook文件夹"exchange trusted subsystem"组读写权限。

Exchange2010 SP1及以上邮箱的数据导出与导入_第5张图片

  登录mis1邮箱,查看收件箱是否有邮件

Exchange2010 SP1及以上邮箱的数据导出与导入_第6张图片

  导入outlook.pst的邮箱数据,使用以下命令:

New-MailboxImportRequest -Mailbox mis1 -FilePath \\192.168.10.10\outlook\outlook.pst -TargetRootFolder "test"

导入outlook.pst的邮箱数据到mis1的邮箱,并生成一个新的文件夹test,查看导入请求是否完成,并删除已完成的请求。

Exchange2010 SP1及以上邮箱的数据导出与导入_第7张图片

Exchange2010 SP1及以上邮箱的数据导出与导入_第8张图片

  导入成功后可在test的收件箱里查看到outlook.pst里的邮件,通过移动的方式把test里的所有邮件移走后,把test删除即可。

  同理,也可以将outlook.pst文件里的收件箱导入到邮箱服务器

示例 1

本示例将 SERVER01 中已恢复的 .pst 文件导入到用户 Ayla 的主邮箱。只导入 .pst 文件的“收件箱”中的数据。将数据导入到 Ayla 的目标邮箱的 RecoveredFiles 文件夹中。

New-MailboxImportRequest -Mailbox Ayla -FilePath \\SERVER01\PSTFiles\Recovered.pst -TargetRootFolder "RecoveredFiles" -IncludeFolders "#Inbox#"
示例 2

本示例将 .pst 文件导入到 Kweku 的存档文件夹。未指定 TargetRootFolder;因此,合并现有文件夹下的内容,如果目标文件夹结构中不包含这些内容,则创建新文件夹。

New-MailboxImportRequest -Mailbox Kweku -IsArchive -FilePath \\SERVER01\PSTFiles\Archives\Kweku\Archive2007.pst 
示例 3

本示例导入共享文件夹上的所有 .pst 文件。在相应用户的别名后命名每个 .pst 文件名。命令为所有 .pst 文件创建导入请求并将数据导入到匹配的邮箱。

Dir \\SERVER01\PSTshareRO\Recovered\*.pst | %{ New-MailboxImportRequest -Name RecoveredPST -BatchName Recovered -Mailbox $_.BaseName -FilePath $_.FullName -TargetRootFolder SubFolderInPrimary}

http://technet.microsoft.com/zh-cn/library/ff607310(v=exchg.141).aspx