Поиск по сайту:

Как импортировать и экспортировать почтовый ящик в PST в Exchange 2016/2013/2010?


В Exchange Server 2010 SP1 (и более поздних версиях) появились специальные командлеты PowerShell: New-MailboxImportRequest и New-MailboxExportRequest, которые позволяют импортировать или экспортировать содержимое Обмен почтового ящика из/в PST-файл. В предыдущих версиях Exchange для импорта/экспорта данных из Exchange в PST-файл приходилось использовать сторонние утилиты (чаще всего использовалась утилита ExMerge).

В Exchange 2016, 2013 и Office 365 команда разработчиков Exchange продолжила разработку командлетов Exchange для импорта/экспорта в PST-файлы, немного расширив функционал и повысив их производительность. В этой статье мы рассмотрим типичные примеры импорта/экспорта данных из почтовых ящиков 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), назначив функцию импорта и экспорта почтового ящика нужному пользователю или группе.

После предоставления разрешений RBAC перезапустите консоль EAC или командной консоли.

New-MailboxImportRequest: импорт PST-файла в почтовый ящик Exchange

Чтобы импортировать PST-файл в почтовый ящик Exchange, помимо разрешений RBAC, вам необходимо следующее:

  • Целевой почтовый ящик Exchange должен существовать;

  • PST-файл должен находиться в общей сетевой папке, и вам необходимо знать полный UNC-путь к нему (не забывайте, что к локальному файлу на определенном компьютере можно получить доступ по его сетевому пути, например \\PCName111\C$\). PST\tstmail.pst);

  • Пользователь, выполняющий операцию импорта, должен иметь разрешение NTFS на чтение сетевой папки с файлом почтового архива PST.

Используйте следующую команду, чтобы импортировать содержимое PST-файла из общей папки в почтовый ящик пользователя usertest.

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

При импорте в целевой ящик содержимое существующих папок объединяется, а новые папки добавляются к существующей структуре почтовых папок.

Содержимое PST-файла можно импортировать не в корень почтового ящика Exchange, а в одну из существующих папок почтового ящика (например, «Old_mail»). Например, вам нужно импортировать только содержимое папки «Входящие» в целевую папку почтового ящика 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 (обработка выполняется на сервере с ролью Client Access Server). Чтобы просмотреть очередь запросов на импорт, выполните следующую команду:

Get-MailboxImportRequest

Статус задачи запроса на импорт (В процессе, Завершено, В очереди) для определенного почтового ящика можно получить следующим образом:

Get-MailboxImportRequest mailtst

Чтобы получить информацию о статусе запроса на импорт (в процентах), выполните команду ниже:

Get-MailboxImportRequest | Get-MailboxImportRequestStatistics

Завершенные запросы на импорт можно удалить из очереди с помощью этой команды:

Get-MailboxImportRequest -Status Completed | Remove-MailboxImportRequest

Для массового импорта элементов электронной почты из 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-файла (вы можете восстановить PST-файлы Outlook с помощью scanpst.exe);

  • Если размер почтового ящика пользователя превышает указанный предел.

Вы можете указать количество плохих элементов в PST-файле, которые можно пропустить во время импорта. Следующая команда импортирует данные из PST-файла в почтовый ящик Exchange и пропустит первые десять неудачных элементов, прежде чем сгенерирует ошибку импорта:

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

New-MailboxExportRequest: экспорт элементов почтового ящика Exchange в PST-файл

Экспорт содержимого почтового ящика Exchange аналогичен импорту. Чтобы экспортировать содержимое почтового ящика в PST-файл, используйте командлет New-MailboxExportRequest. Чтобы экспортировать почтовый ящик пользователя mailtst в общую сетевую папку (этот каталог должен быть создан заранее, и вы должны предоставить разрешения на чтение и запись в этой папке для группы домена Доверенная подсистема Exchange), выполните следующую команду :

New-MailboxExportRequest -Mailbox mailtst -FilePath \\HQ-FS01\ExportPST\mailtst.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#”

Давайте рассмотрим более сложную задачу: предположим, вам нужно экспортировать все электронные письма, полученные после 1 января 2019 года, содержащие ключевые слова «Проект» и «Лондон».

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.

Запрос задачи экспорта также ставится в очередь на сервере Exchange. Чтобы просмотреть статус задачи экспорта, выполните следующую команду:

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

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

Статьи по данной тематике