В Exchange Server 2010 SP1 (і вище) для імпорту / експорту вмісту поштової скриньки Exchange з / в PST-файли з’явилися спеціальні командлети PowerShell: Новий-MailboxImportRequest і Новий-MailboxExportRequest. У попередніх версіях Exchange для імпорту / експорту даних з Exchange в PST файли доводилося використовувати сторонні утиліти (найчастіше використовувалася утиліта ExMerge, Знайомство з яким не зміг уникнути жоден Exchange-адміністратор).

В Exchange 2016, 2013 і Office 365 розробники розширили функціонал командлетів Exchange для імпорту / експорту в PST файли, кілька розширивши функціонал і збільшивши їх продуктивність. У цій статті ми розглянемо типові приклади імпорту / експорту даних з поштових скриньок Exchange в файли особистих папок (PST).

Права доступу для імпорту або експорту даних в ящики Exchange

Облікового запису, під якою виконується імпорт або експорт листів з поштової скриньки Exchange, повинна бути призначена RBAC роль “Mailbox Import Export” (по-замовчуванню цими правами не володіє навіть адміністратор Exchange). Ви можете надати адміністратору Exchange дану роль за допомогою Exchange Management Shell:

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

де екс_адмін_name – ім’я облікового запису, якій надаються права.

Порада. Для спрощення адміністрування роль Поштова скринька Імпорт Експорт зазвичай призначається на групу безпеки AD. Згодом, якщо необхідно надати дане право іншому користувачеві, досить буде додати його обліковий запис в цю доменну групу. Синтаксис команди в цьому випадку трохи інший (припустимо ім’я групи AD – ExchangeAdmGroup):

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

Теж саме можна зробити і з графічного інтерфейсу EAC (Exchange Admin Center), призначивши потрібного користувачеві або групі роль Експорт імпорту поштової скриньки.

Право "Експорт імпорту поштової скриньки" в Центр адміністрування Exchange 2013

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

New-MailboxImportRequest: Імпорт листів з PST-файлу в ящик Exchange

Для імпорту PST файлу в поштову скриньку Exchange крім наявності прав необхідно, щоб виконувалися наступні умови:

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

За допомогою наступної команди запустіть процес імпорту вмісту PST файлу з мережевої папки в поштову скриньку користувача usetest.

New-MailboxImportRequest -Mailbox mailtst -FilePath \HQFS01PSTusetest.pst

При виконанні імпорту в цільовому ящику вміст вже існуючих папок об’єднується, а нові папки додаються до наявної структурі поштових папок.

Вміст PST файлу можна імпортувати не в корінь ящика Exchnage, а в одну з уже існуючих папку ящика (наприклад, “Import_mail”). Наприклад, нам потрібно імпортувати з PST тільки вміст папки Вхідні (Вхідні), скопіювавши його в папку ящика Exchange з ім’ям Import_mail:

New-MailboxImportRequest -Mailbox mailtst -FilePath \HQFS01PSTusetest.pst -TargetRootFolder "Old_mail" -IncludeFolders "#Inbox#"

Порада. Повний список імен стандартних поштових папок ящика Exchange:

  • Вхідні
  • Відправлені
  • DeletedItems
  • Календар
  • Контакти
  • Чернетки
  • Журнал
  • Завдання
  • Примітки
  • Небажаної пошти
  • Історія спілкування
  • Голосова пошта
  • Факс
  • Конфлікти
  • SyncIssues
  • Місцеві несправності
  • Збої сервера

Після запуску команди імпорту, запит потрапляє в чергу на обробку сервером Exchange (обробка виконується на сервері з роллю Client Access Server). Щоб побачити вміст черги завдання імпорту, виконайте команду:

Get-MailboxImportRequest

Статус виконання завдання імпорту (InProgress, Completed, Queued) для конкретного ящика Exchnage можна дізнатися так:

Get-MailboxImportRequest mailtst

Щоб отримати інформацію про статус виконання запиту імпорту у відсотках, виконайте команду:

Get-MailboxImportRequest | Get-MailboxImportRequestStatistics

Get-MailboxImportRequestStatistics- статистика імпорту pst архіву в ящик користувача

Завершення запити на імпорт можна видалити з поточної черги за допомогою команди:

Get-MailboxImportRequest -Status Completed | Remove-MailboxImportRequest

Remove-MailboxImportRequest - видалити запит імпорту в Exchange 2016

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

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

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

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

У більшості випадках помилки імпорту відбуваються через:

Можна вказати ліміт кількості збійних елементів PST файлів, яких можна пропустити при експорті. Наступна команда виконає імпорт даних з PST файлу в ящик і пропустить десять перших збійних елементів, перш ніж видати помилку імпорту:

New-MailboxImportRequest -Mailbox mailtst -FilePath \HQFS01PSTusetest.pst -BadItemLimit 10

New-MailboxExportRequest: Експорт поштової скриньки Exchange в PST архів

Процедура експорту вмісту поштової скриньки Exchange аналогічна імпорту. Для експорту вмісту ящика в PST файл використовується командлет Новий-MailboxExportRequest. Щоб експортувати поштову скриньку користувача mailtst в мережеву папку (каталог повинен бути створений попередньо і на нього дані права читання і запису для доменної групи Обмін Довіряють Підсистема) Виконайте таку команду:

New-MailboxExportRequest –Mailbox mailtst –FilePath \HQFS01ExportPSTmailtst.pst

New-MailboxExportRequest - екпорт листів з ящика exchange в pst файл за допомогою powershell

Якщо потрібно вивантажити в PST-файл тільки листи з певною папки, наприклад, Inbox (Вхідні), команда буде виглядати так:

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

Щоб виключити з вивантаження папку, скористайтеся параметром ExcludeFolders. Наприклад, вам не потрібно, щоб в PST файл експортувалося вилучені елементи:

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

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

New-MailboxExportRequest –Mailbox mailtst –FilePath \HQFS01ExportPSTmailtst.pst –ContentFilter {(body –like “*MSProject*”) –and {body –like “*Moscow*”) –and (Received –gt “01/01/2019”)}

Також ви можете експортувати дані тільки з певною папки з результатами пошуку по шухлядах, отриманої за допомогою командлета Search-Mailbox.

Завдання експорту також потрапляє в чергу на сервері Exchange. Щоб перевірити статус завдання експорту, виконайте команду:

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

Get-MailboxExportRequest

RunspaceId : 2623f0d3-1b4b-4610-b0a2-6f29a077cc54
FilePath : \HQFS01ExportPSTmailtst.pst
SourceDatabase : db1
Mailbox :
Name : MailboxExport
RequestGuid : e03de23f-4376-424a-95fa-53faaf97ebf9
RequestQueue : db1
Flags : IntraOrg, Push
BatchName :
Status : Completed
Protect : False
Suspend : False
Direction : Push
RequestStyle : IntraOrg
OrganizationId :
Identity : mailtstMailboxExport
IsValid : True
ObjectState : New

Не забувайте час від часу чистити успішно виконані запити на експорт ящиків в PST файли:

Get-MailboxExportRequest -Status Completed | Remove-MailboxExportRequest

При експорті даних з ящика в PST файл, вміст скриньки користувача на сервері Exchange не очищається.

Ви можете масово вивантажити ящики декількох користувачів. Створіть текстовий файл такого формату:

Username, UNCPathtoPst
aaivanov,\HQFS01ExportPSTaaivanov.pst
ebpetrov,\HQFS01ExportPSTebpetrov.pst

Запустіть експорт скриньок користувачів в PST файли:

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

Leave a Reply

Your email address will not be published. Required fields are marked *