首页 > 代码库 > Exchange 用户归档邮件导入导出PST操作实例

Exchange 用户归档邮件导入导出PST操作实例

             分享一个之前做过的Exchange邮箱数据文件的导入导出操作示例。目录内容如下:

目录

第一步 新建一个Exchange角色组并将其添加到Mailbox Import Export 管理角色中... 4

第二步 创建共享文件夹... 4

第三步 创建单个用户邮件导出请求... 5

第四步 将导出的PST文件导入到用户主邮箱... 6

删除已完成的邮件导入请求... 6

删除已完成的邮件导出请求... 6

批量导出归档邮箱至PST文件... 7

基于数据库批量导出PST. 7

使用CSV文件批量导出PST. 8

批量导入PST文件至用户主邮箱... 9

查看邮箱导入导入请求状态... 10

使用Windows计划任务自动执行脚本... 12

第一步 新建一个Exchange角色组并将其添加到Mailbox Import Export 管理角色中

使用命令创建一个角色组名称为Enterprise Mail Support,并将其赋予Mailbox Import Export角色权限,将exadmin加入到成员中。

New-RoleGroup –Name "Enterprise Mail Support" -Roles "Mailbox Import Export" -Members exadmin -Description "Import Export_Enterprise Support"

技术分享

删除角色组使用命令:Remove-RoleGroup -Identity "Enterprise Mail Support"

技术分享

get-RoleGroup -Identity "Enterprise Mail Support"

技术分享

第二步 创建共享文件夹

若要导出邮箱或存档,必须首先创建网络共享文件夹。您需要向在其中导出或导入邮箱的网络共享授予对“Exchange 受信任子系统”组的读/写权限。如果您不授予此权限,则将收到一条错误消息,表明 Exchange 无法建立与目标邮箱的连接。

技术分享

第三步 创建单个用户邮件导出请求

通过命令将某个用户的归档邮箱邮件导出到PST文件中。

New-MailboxExportRequest -Mailbox exadmin -IsArchive -FilePath "\\127.0.0.1\PST\exadmin.pst"

技术分享

技术分享

第四步 将导出的PST文件导入到用户主邮箱

导入过程中如果没有指定导入的目标文件,默认是导入到用户主邮箱的#Inbox#(收件箱里面),PST文件中收件箱中用户自定义的文件会在主邮箱的收件箱中创建(如果该文件夹不存在的情况下)。如果主邮箱中已经存在该封邮件,导入过程中自动跳过重复的邮件。

技术分享

技术分享

删除已完成的邮件导入请求

如果想要删除处于完成状态的邮箱导入请求可以运行如下命令:

Get-MailboxImportRequest –Status Completed | Remove-MailboxImportRequest

删除已完成的邮件导出请求

如果需要删除处于完成状态的邮件导出请求可以运行如下命令:

Get-MailboxExportRequest –Status Completed | Remove-MailboxImportRequest

批量导出归档邮箱至PST文件

基于数据库批量导出PST

使用脚本Export-Mail_DB.ps1,该脚本可以将用户的归档邮箱数据按照数据库批量导出到PST文件中,并将各个PST文件存放在以数据库命名的目录中。

运行脚本需要具体的前提条件:

1、 手动创建共享目录,并赋予Exchange信任子系统具有完全访问权限。

2、 操作账号需要属于"Mailbox Import Export"角色组成员。

脚本内容如下:

##以数据库名称为文件名批量创建目录

foreach ($folder in Get-MailboxDatabase db* ) {mkdir \\localhost\pst\$folder\ }

##按照数据库批量导出邮箱用户归档邮箱中邮件到PST文件中,PST文件以“用户名.pst”格式命名。

foreach ($database in get-mailboxdatabase) {foreach ($Mailbox in Get-Mailbox -Database $database -Archive) {$b=$Mailbox.Alias;New-MailboxExportRequest -Mailbox $a -FilePath "\\localhost\pst\$db\$b.pst" -IsArchive}}

运行脚本如图:

技术分享

运行结果:

技术分享

技术分享

 

使用CSV文件批量导出PST

可以使用脚本Export-Mail_CSV.ps1,该脚本的具体内容就是批量导出CSV文件中的邮箱用户的归档邮件到PST文件中。

使用脚本前需要注意事项:

1、 手动创建共享目录,并赋予Exchange信任子系统具有完全访问权限。

2、 操作账号需要属于"Mailbox Import Export"角色组成员。

在运行脚本前准备好CSV文件(CSV文件可以使用命令get-mailbox -Archive -Database DB01 | ft name,Alias,Sam* > c:\2014.csv来生成文件,然后调整文件格式即可),CSV文件内容格式如下:

示例CSV文件:

技术分享

脚本内容如下:

$mail  = import-csv -path "c:\test01.csv"

##遍历CSV文件内容  
Foreach ($user in $mail)

 

{


$Alias = $user.SamAccountName

 

##批量导出CSV文件中的邮箱账号的归档邮箱数据到共享目录中,并自动创建以用户名命名的PST文件。共享目录的权限需要设置为Exchange信任子系统具有完全访问权限。

New-MailboxExportRequest   -IsArchive -Mailbox $Alias -FilePath "\\127.0.0.1\PST\$Alias.pst"

 


}

技术分享

批量导入PST文件至用户主邮箱

使用脚本ImportMailbox.ps1将PST文件导入到用户的主邮箱中。脚本自动识别PST文件的文件名并将识别到的文件导入到对应的邮箱账户主邮箱中。

脚本内容如下:

技术分享

Dir \\localhost\PST\*.pst | %{ New-MailboxImportRequest -Mailbox $_.BaseName -FilePath $_.FullName}

 

运行结果:

技术分享

查看邮箱导入导入请求状态

使用如下命令查看导入请求状态。

Get-MailboxExportRequest | Get-MailboxExportRequestStatistics

技术分享

技术分享

Get-MailboxImportRequestStatistics -Identity ‘contoso.com/Exchangeuser/test\MailboxImport1‘ | fl TargetMailboxIdentity,EstimatedTransferSize,EstimatedTransferItemCount,BytesTransferred,ItemsTransferred,PercentComplete

技术分享

使用Windows计划任务自动执行脚本

在“管理工具”中打开“任务计划程序”,如图。

技术分享

选择“创建任务”,如图。

技术分享

输入任务名称,如图。

技术分享

选择“新建触发器”,如图。

技术分享

设置任务运行时间。如图。

技术分享

如图操作。

技术分享

在程序或脚本中输入如下命令:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -noexit -command ". ‘C:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExchange.ps1‘; Connect-ExchangeServer –auto; .‘C:\Export-Mailbox_DB.ps1‘"

技术分享

技术分享

技术分享

本文出自 “jialt的博客” 博客,谢绝转载!

Exchange 用户归档邮件导入导出PST操作实例