+7 (495) 660-35-00

info@iteron.ru

129226, РФ, Москва

Сельскохозяйственная, д. 11, к.3, оф. 148

09:00 - 21:00

без выходных

Exchange — Импорт / экспорт PST файлов

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

В Exchange 2013 разработчики сохранили данный функционал, несколько расширив функционал и увеличив производительность. В этой статье мы рассмотрим типовые примеры импорта/экспорта данных из почтовых ящиков Exchange 2013 в файлы личных папок (PST).

Права на  импорт/экспорт данных в ящики Exchange

В первую очередь нужной учетной записи необходимо предоставить права на импорт/экспорт данных в почтовый ящик Exchange 2013 (по-умолчанию этими правами не обладает даже администратор Exchange). Сделать это можно с помощью PowerShell (если быть совсем точным, с помощью Exchange Management Shell):

New-ManagementRoleAssignment –Role “Mailbox Import Export” –User usetest

Где usetest – имя учетной записи, которой предоставляются права.

Совет. Для упрощения администрирования роль Mailbox Import Export обычно назначается на группу AD. Впоследствии, если необходимо предоставить данное право другому пользователю, достаточно будет включить его учетную запись в эту группу. Синтаксис команды в этом случае немного другой (допустим имя группы AD – ExchangeAdmGroup):

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

Тоже самое можно сделать и из графического интерфейса EAC (Exchange Admin Center), назначив нужному пользователю или группе роль Mailbox Import Export.

Право "Mailbox Import Export" в Exchange 2013 Admin Center

После предоставления прав консоль EAC или Management Shell нужно перезапустить.

Импорт содержимого PST файла в ящик Exchange 2013

Для импорта PST файла в почтовый ящик Exchange помимо наличия прав необходимо, чтобы:

  1. Целевой яшик Exchange существовал
  2. PST файл был размещен на сетевой ресурсе и знать полный UNC путь к нему (не забывайте, что к локальному файлу можно всегда обратится по сетевому пути в формате \\PCName111\C$\PST\tstmail.pst )
  3. У пользователя, выполняющего операцию импорта должен быть доступ на сетевой каталог с PST файлом

С помощью следующей команды запустим процесс импорта содержимого PST файла с сетевого ресурса в почтовый ящик пользователя usetest.

New-MailboxImportRequest -Mailbox mailtst -FilePath \\HQFS01\PST\usetest.pst

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

Содержимое PST файла можно импортировать в уже существующую папку ящика (например, “Old_mail”). Например, нам нужно импортировать только содержимое папки Inbox (Входящие), скопировав его в папкуOld_mail:

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

Совет. Полный список стандартных почтовых папок ящика Exchange:

  • 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

Статус задания  для конкретного ящика можно узнать так:

Get-MailboxImportRequest mailtst

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

Get-MailboxImportRequest | Get-MailboxImportRequestStatistics

Get-MailboxImportRequest

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

Get-MailboxExportRequest -Status Completed | Remove-MailboxExportRequest

Для массового импорта PST файлов в ящики пользователей можно воспользоваться такой командой (предполагается, что имена pst-файлов соответствуют именам ящиков пользователей):

Foreach ($i in (Get-Mailbox)) { New-MailboxExportRequest -Mailbox $i -FilePath "\\HQFS01\PST\$($i.Alias).pst" }

Если в процессе импорта произошел сбой, более подробную информацию о его причинах можно получить из отчета, сформированного так:

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

В большинстве случаях ошибки импорта происходят из-за:

  • повреждения структуры pst файлов (как восстановить pst файлы с помощью встроенных средств)
  • превышения размеров на лимит почтового ящика

Можно указать лимит количества сбойных элементов PST файлов, которых можно пропустить:

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

Экспорт содержимого  ящика Exchange 2013 в PST файл

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

New-MailboxExportRequest –Mailbox mailtst –FilePath \\HQFS01\ExportPST\mailtst.pst

Если нужно выгрузить в PST содержимое определённой папки, например Inbox (Входящие),  команда будет выглядеть так:

New-MailboxExportRequest –Mailbox mailtst –FilePath \\HQFS01\ExportPST\mailtst.pst -IncludeFolders “#Inbox#”

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

New-MailboxExportRequest –Mailbox mailtst –FilePath \\HQFS01\ExportPST\mailtst.pst - ExcludeFolders “#DeletedItems#”

Рассмотрим более сложное задание: допустим, необходимо выгрузить из ящика все письма, полученные после 1 января 2014 года, содержащие в теле письма ключевые слова “MSProject” и “Moskow”.

New-MailboxExportRequest –Mailbox mailtst –FilePath \\HQFS01\ExportPST\mailtst.pst –ContentFilter {(body –like “*MSProject*”) –and {body –like “*Moskow*”) –and (Received –lt “01/01/2014”)}

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

Get-MailboxExportRequest

 

Отсканируйте код