当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 如何在 Exchange 2016/2013/2010 中将邮箱导入和导出到 PST?

作者:精品下载站 日期:2024-12-14 20:01:51 浏览:16 分类:玩电脑

如何在 Exchange 2016/2013/2010 中将邮箱导入和导出到 PST?


在 Exchange Server 2010 SP1(及更高版本)中,出现了特殊的 PowerShell cmdlet:New-MailboxImportRequestt 和 New-MailboxExportRequest,允许您将 Exchange 邮箱的内容导入到 PST 文件或将其导出到 PST 文件。在以前的 Exchange 版本中,为了将数据从 Exchange 导入/导出到 PST 文件,您必须使用第三方实用程序(最常见的是使用 ExMerge 实用程序)。

在 Exchange 2016、2013 和 Office 365 中,Exchange 开发团队继续开发用于导入/导出到 PST 文件的 Exchange cmdlet,稍微扩展了功能并提高了性能。在本文中,我们将介绍将数据从 Exchange 邮箱导入/导出到个人文件夹文件 (PST) 的典型示例。

Exchange 中的邮箱导入和导出权限

RBAC 角色“邮箱导入导出”必须分配给您要将 Exchange 邮箱导入或导出到 PST 的管理员帐户(默认情况下,即使是 Exchange 管理员也没有这些权限)。您可以使用 Exchange 命令行管理程序将此角色分配给您的帐户:

New-ManagementRoleAssignment -Role “Mailbox Import Export” -User fr_exchange_admin

在哪里

fr_exchange_admin

- 是获得“邮箱导入导出”角色权限的帐户名称。

提示。 为了方便管理,“邮箱导入导出”角色通常分配给AD安全组。稍后,如果必须将此权限授予其他用户,只需将该用户帐户添加到该域组即可。在这种情况下,命令语法有点不同(假设 AD 组的名称是 ExchangeAdmGroup):

New-ManagementRoleAssignment -Role "Mailbox Import Export" -SecurityGroup ExchangeAdmGroup

通过将邮箱导入导出分配给所需的用户或组,可以从 EAC(Exchange 管理中心)图形界面完成相同的操作。

[玩转系统] 如何在 Exchange 2016/2013/2010 中将邮箱导入和导出到 PST?

授予 RBAC 权限后,重新启动 EAC 或 Management Shell 控制台。

New-MailboxImportRequest:将 PST Fie 导入 Exchange 邮箱

要将 PST 文件导入 Exchange 邮箱,除了 RBAC 权限外,您还需要以下权限:

  • 目标Exchange邮箱必须存在;

  • PST 文件必须位于共享网络文件夹上,并且您必须知道它的完整 UNC 路径(不要忘记,可以通过其网络路径访问某台计算机上的本地文件,例如 \PCName111\C$\PST stmail.pst);

  • 执行导入操作的用户必须对包含 PST 邮件存档文件的网络文件夹具有 NTFS 读取权限。

使用以下命令将 PST 文件的内容从共享文件夹导入到用户的邮箱 usertest 中。

New-MailboxImportRequest -Mailbox usetest -FilePath \HQ-FS01\PST\usetest.pst

导入到目标邮箱时,现有文件夹的内容将被合并,并且新文件夹将添加到现有邮件文件夹结构中。

PST 文件的内容不能导入到 Exchange 邮箱根目录中,而是导入到邮箱的现有文件夹之一(例如“Old_mail”)。例如,您只需将Inbox文件夹的内容导入到目标邮箱文件夹Old_mail中:

New-MailboxImportRequest -Mailbox usetest -FilePath \HQ-FS01\PST\usetest.pst  -TargetRootFolder "Old_mail" -IncludeFolders "#Inbox#"

提示。 以下是 Exchange (Outlook) 邮箱中标准文件夹的完整列表:

  • Inbox
  • SentItems
  • DeletedItems
  • Calendar
  • Contacts
  • Drafts
  • Journal
  • Tasks
  • Notes
  • JunkEmail
  • CommunicationHistory
  • Voicemail
  • Fax
  • Conflicts
  • SyncIssues
  • LocalFailures
  • ServerFailures

运行导入命令后,导入请求将排队等待 Exchange 服务器处理(处理在具有客户端访问服务器角色的服务器上执行)。要查看导入请求队列,请运行以下命令:

Get-MailboxImportRequest

[玩转系统] 如何在 Exchange 2016/2013/2010 中将邮箱导入和导出到 PST?

可以通过以下方式获取某个邮箱的导入请求任务状态(InProgress、Completed、Queued):

Get-MailboxImportRequest mailtst

要获取有关导入请求状态的信息(以百分比为单位),请运行以下命令:

Get-MailboxImportRequest | Get-MailboxImportRequestStatistics

[玩转系统] 如何在 Exchange 2016/2013/2010 中将邮箱导入和导出到 PST?

可以使用以下命令从队列中删除已完成的导入请求:

Get-MailboxImportRequest -Status Completed | Remove-MailboxImportRequest

[玩转系统] 如何在 Exchange 2016/2013/2010 中将邮箱导入和导出到 PST?

要将 PST 文件中的电子邮件项目批量导入到多个用户邮箱中,可以使用以下命令(假设 pst 文件的名称与用户邮箱的名称相对应):

Foreach ($i in (Get-Mailbox)) { New-MailboxImportRequest -Mailbox $i -FilePath "\HQ-FS01\PST$($i.Alias).pst" }

如果导入过程失败,您可以从生成的报告中获取有关其原因的详细信息,如下所示:


Get-MailboxImportRequest -Status Failed | Get-MailboxImportRequestStatistics -IncludeReport | Format-List > AllImportReports.txt

在大多数情况下,导入错误的原因如下:

  • PST 文件结构的逻辑损坏(您可以使用 scanpst.exe 修复 Outlook PST 文件);

  • 如果用户邮箱大小超过指定的限制。

您可以指定 PST 文件中导入期间可以跳过的坏项目数。以下命令会将数据从 PST 文件导入到 Exchange 邮箱中,并在生成导入错误之前跳过前十个失败的项目:

New-MailboxImportRequest -Mailbox mailtst -FilePath \HQ-FS01\PST\usetest.pst -BadItemLimit 10

New-MailboxExportRequest:将 Exchange 邮箱项目导出到 PST 文件

Exchange 邮箱内容的导出与导入类似。要将邮箱内容导出到 PST 文件,请使用 New-MailboxExportRequest cmdlet。要将mailtst用户的邮箱导出到共享网络文件夹(该目录需要提前创建,并且必须为Exchange可信子系统域组授予该文件夹的读写权限),请运行以下命令:

New-MailboxExportRequest -Mailbox mailtst -FilePath \HQ-FS01\ExportPST\mailtst.pst

[玩转系统] 如何在 Exchange 2016/2013/2010 中将邮箱导入和导出到 PST?

如果您必须仅将特定文件夹(例如收件箱)中的电子邮件项目导出到 PST 文件,则命令如下所示:

New-MailboxExportRequest -Mailbox mailtst -FilePath \HQ-FS01\ExportPST\mailtst.pst -IncludeFolders “#Inbox#”

要从导出中排除文件夹,请使用 ExcludeFolders 参数。例如,您不需要将已删除的项目导出到 PST 文件:

New-MailboxExportRequest -Mailbox mailtst -FilePath \HQ-FS01\ExportPST\mailtst.pst -ExcludeFolders “#DeletedItems#”

让我们考虑一个更复杂的任务:假设您必须导出 2019 年 1 月 1 日之后收到的所有包含关键字“Project”和“London”的电子邮件。

New-MailboxExportRequest -Mailbox mailtst -FilePath \HQFS01\ExportPST\mailtst.pst -ContentFilter {(body -like “*Project*”) -and {body -like “*London*”) -and (Received -lt “01/01/2019”)}

您还可以仅从包含使用 Search-Mailbox cmdlet 获得的搜索邮箱搜索结果的特定文件夹中导出项目。

导出任务请求也在 Exchange 服务器上排队。要查看导出任务状态,请运行以下命令:

Get-MailboxExportRequest -Mailbox "mailtst" | Format-List

[玩转系统] 如何在 Exchange 2016/2013/2010 中将邮箱导入和导出到 PST?

RunspaceId : 3233f0d3-1b4b-4610-b0a2-6f29a543cc54
FilePath : \HQFS01\ExportPST\mailtst.pst
SourceDatabase : db1
Mailbox :
Name : MailboxExport
RequestGuid : e03de01f-3333-111a-95fa-23faaf97ebf9
RequestQueue : db1
Flags : IntraOrg, Push
BatchName :
Status : Completed
Protect : False
Suspend : False
Direction : Push
RequestStyle : IntraOrg
OrganizationId :
Identity : mailtst\MailboxExport
IsValid : True
ObjectState : New

不要忘记定期清理已完成的将邮箱导出到 PST 文件的请求:

Get-MailboxExportRequest -Status Completed | Remove-MailboxExportRequest

将用户邮箱导出到 PST 文件时,Exchange 服务器上的用户邮箱内容不会被清除。

您可以批量导出多个用户邮箱。创建以下格式的 csv 文本文件:

Username, UNCPathtoPst
t.holland,\HQFS01\ExportPST\holland.pst
d.orr,\HQFS01\ExportPST\orr.pst

运行将用户邮箱导出到 PST 文件中:

Import-CSV "C:\ps\user_list_export_pst.csv" | ForEach {New-MailboxExportRequest -Mailbox $_.username -FilePath $_.UNCPathtoPst

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯