Exchange2013 SP1通过 EMS导出及导入PST数据文件
作为一个企业管理员,在很多情况下,需要将Exchange邮件服务器中的邮箱用户的数据库导出或者导入邮箱数据到Exchange服务器中国的邮箱数据库,原因有:1.满足合规性要求 可以出于发现目的将邮箱内容导出到 .pst 文件(您可以使用 New-MailboxExportRequest 将数据)。 完成导出后,可以将内容导入到专用于合规性用途的邮箱。2.创建时间点邮箱快照 通过创建特定邮箱的快照,您就无需再为邮箱数据库保留整个备份集。3.将用户的 .pst 文件移至其邮箱或个人存档中Microsoft Outlook 用户可以将其电子邮件在本地另存为 .pst 文件。 您可以使用 New-MailboxImportRequest 将数据从用户的 .pst 文件移至其邮箱或个人存档中。该方法是将电子邮件从用户的本地计算机传送到 Exchange 服务器的简单方法.在导入或导出邮箱数据之前,需要考虑以下事项:
1.若要导入或导出邮箱数据,必须设置可由 Exchange 服务器访问的网络共享文件夹。还必须为 Exchange 受信任子系统组授予读/写权限,这样该组便可访问您在其中导入和导出邮箱数据的网络共享。如果不授予此权限,您将收到一条错误消息,指示 Exchange 无法与目标邮箱建立连接。
2.Outlook 支持的最大 .pst文件大小为 50 GB.因此建议您不要导入 50 GB 以上的 .pst 文件。您可以通过指定要包含或排除的特定文件夹,或者通过使用内容过滤器,为 50 GB 以上的邮箱创建多个 .pst 文件。
3.导入和导出请求由 MRS 执行,它还负责处理移动请求和邮箱还原请求。所有请求都由 MRS 进行排队和限制。
4.根据文件大小、网络带宽以及 MRS 限制,导入和导出邮箱数据可能需要数小时时间。
5.数据不能导入到公用文件夹或公用文件夹数据库中。
我们先登录用户邮箱,互相发送测试邮件,然后再导出,以便能看见效果
再次我们以:user01、user02为例子:
我们先通过owa互相发送测试邮件
User01用户给user02发送测试邮件
User02收到邮件后回复邮件
User01收到的回复邮件
需要使用EMS进行操作,但是该操作的Exchange服务器管理员必须要成为“邮箱导入导出角色”、默认情况,Exchange邮箱服系统中的任何用户和组都不属于这一角色,可以通过以下命令是用户成为“邮箱导入导出角色”
New-ManagementRoleAssignment
以为Administrator用户账户分配“邮箱导入导出角色”为例,命令如下:
New-ManagementRoleAssignment -Name "Import Export_Domain Admins" -User "Administrator" -Role "Mailbox Import Export"
当然我们也已通过以下命令来查看当前确认管理员是否有mailbox import export的角色。
Get- ManagementRoleAssignment
如果要对指定用户进行权限查看的话通过以下命令
Get-ManagementRoleAssignment -WritableRecipient users �CGetEffectiveUsers
比如我们通过对administrator进行确认
Get-ManagementRoleAssignment -WritableRecipient administrator �CGetEffectiveUsers
其实有很多,我中间部分跳过了,没有复制,如果有需求大家可以自行查看
接下来通过创建邮箱导出请求对邮箱进行导出。创建导出请求的命令如下:
New-MailboxExportRequest
更多可参考:https://technet.microsoft.com/zh-cn/library/ff607310.aspx
以为将用户“user01”的主邮箱导出到文件服务器“10.10.1.52”为例,命令如下:
New-MailboxExportRequest -Mailbox user01 -FilePath \\10.10.1.52\mailbak\user01.pst
导出的效果
同时,New-MailboxExportRequest还支持将用户邮箱中的特定文件夹导出为PST,如:将用户“user01”的“收件箱”导出到PST:
New-MailboxExportRequest -Mailbox user01 -IncludeFolders "#Inbox#" -FilePath \\10.10.1.52\mailbak\user01_inbox.pst
我们通过outlook挂载导出来的pst查看是否正确
打开outlook配置----数据文件----添加---选择即可
添加后,我们查看
我们打开user01.pst预览一下
在打开user01的inbox.pst
那如果需要导出用户user02 在 2015 年 1 月 1 日之前收到的邮件正文中包含“公司”和“利润”的邮件。
New-MailboxExportRequest -Mailbox Tony -ContentFilter {(body -like "*company*") -and (body -like "*profit*") -and (Received -lt "01/01/2012")} -FilePath "\\SERVER01\PSTFileShare\user02_CompanyProfits.pst"
不过,需要注意,邮箱导出请求创建之后,即使在导出操作已经完成,这些导出请求是不会被自动删除的。可以通过以下命令查看现有的邮箱导出请求:
Get-MailboxExportRequest
更多可参考:http://technet.microsoft.com/zh-cn/library/ff607479.aspx
我们查看详细的
Get-mailboxexportrequest | fl
我们也可以使用以下命令查看导出完成的详细信息:
Get-MailboxExportRequestStatistics -Identity users\MailboxExport1
可以看到之前创建的四个邮箱导出请求均存在于列表中。对于已完成的邮箱导出请求,已经没有必要继续存在请求列表中,可以使用以下命名将其删除:
Remove-MailboxExportRequest
更多可参考:http://technet.microsoft.com/zh-cn/library/ff607464.aspx
以删除之前创建的邮箱导出请求为例,基于“user01”用户的邮箱导出请求“MailboxExport1”的状态为“Competed”,所以可以将其删除了。具体操作如下:
Remove-MailboxExportRequest -Identity "user01\mailboxexport1"
我们按照序列号即可删除,我们删除全部导出列表
我们发现上面需要执行多次,那我们可以 执行一条命令,删除所有状态为“已完成”的导出请求
Get-MailboxExportRequest -Status Completed | Remove-MailboxExportRequest
对于邮箱中导入和导出功能我们可以总结以下命令:
接下来我们是导入pst文件到用户的Exchange邮箱:
我们先找一个pst文件,里面有内容的pst文件
大概功能见下:
我们首先在本地创建一个pst文件,然后新建了5个文件夹,来模仿不同信息
然后我们需要将该pst文件导入到user02的Exchange邮箱用户下:
Pst文件路径\\10.10.1.52\mailbak\gavin-pst.pst
我们通过以下命令:
10.10.1.52共享的pst文件导入到user02的邮箱下
New-MailboxImportRequest -Mailbox user02 -FilePath \\10.10.1.52\mailbak\gavin-pst.pst
我们导入后通过
get-mailboximportrequest
查看队列
接着我们登陆到user02的owa下查看是否将本地的pst文件内容导入成功,导入成功
10.10.1.50中已恢复的 .pst 文件导入到用户 user02 的主邮箱。只导入 .pst 文件的“收件箱”中的数据。将数据导入到 user02的目标邮箱的 RecoveredFiles 文件夹中。
New-MailboxImportRequest -Mailbox user02 -FilePath \\10.10.1.52\mailbak\gavin-pst.pst -TargetRootFolder "RecoveredFiles" -IncludeFolders "#Inbox#"
我们再次查看user02的邮箱
将 .pst 文件导入到 Bak 的存档文件夹。未指定 TargetRootFolder;因此,合并现有文件夹下的内容,如果目标文件夹结构中不包含这些内容,则创建新文件夹。
New-MailboxImportRequest User2 -FilePath \\server\share\User1.pst -IsArchive -TargetRootFolder /
导入共享文件夹上的所有 .pst 文件。在相应用户的别名后命名每个 .pst 文件名。命令为所有 .pst 文件创建导入请求并将数据导入到匹配的邮箱。
Dir \\SERVER01\PSTshareRO\Recovered\*.pst | %{ New-MailboxImportRequest -Name RecoveredPST -BatchName Recovered -Mailbox $_.BaseName -FilePath $_.FullName -TargetRootFolder SubFolderInPrimary}
最后我们查看队列
Get-mailboximportrequest
然后,我们通过以下命令删除该队列
Remove-MailboxImportRequest -Identity "user02\MailboxImport1"