В Exchange Server 2010 SP1 (и выше) для импорта / экспорта содержимого почтового ящика Exchange из/в PST-файлы появились специальные командлеты PowerShell: New -MailboxImportRequest и New -MailboxExportRequest . В предыдущих версиях Exchange для импорта/экспорт данных из Exchange в PST файлы приходилось использовать сторонние утилиты (чаще всего использовалась утилита ExMerge , знакомство с которым не смог избежать ни один Exchange-администратор).
В Exchange 2016, 2013 и Office 365 разработчики расширили функционал командлетов Exchange для импорта/экспорта в PST файлы, несколько расширив функционал и увеличив их производительность. В этой статье мы рассмотрим типовые примеры импорта/экспорта данных из почтовых ящиков Exchange в файлы личных папок (PST).
Учетной записи, под которой выполняется импорт или экспорт писем из почтового ящика Exchange, должна быть назначена RBAC роль “Mailbox Import Export” (по-умолчанию этими правами не обладает даже администратор Exchange). Вы можете предоставить администратору Exchange данную роль с помощью Exchange Management Shell:
New-ManagementRoleAssignment –Role “Mailbox Import Export” –User exch_admin_name
Где exch _admin _name – имя учетной записи, которой предоставляются права.
New-ManagementRoleAssignment -Role "Mailbox Import Export" -SecurityGroup ExchangeAdmGroup
Тоже самое можно сделать и из графического интерфейса EAC (Exchange Admin Center), назначив нужному пользователю или группе роль Mailbox Import Export .
После предоставления прав консоль EAC или Exchange Management Shell нужно перезапустить.
Для импорта PST файла в почтовый ящик Exchange помимо наличия прав необходимо, чтобы выполнялись следующие условия:
С помощью следующей команды запустите процесс импорта содержимого PST файла из сетевой папки в почтовый ящик пользователя usetest.
New-MailboxImportRequest -Mailbox mailtst -FilePath \HQFS01PSTusetest.pst
При выполнении импорта в целевом ящике содержимое уже существующих папок объединяется, а новые папки добавляются к имеющейся структуре почтовых папок.
Содержимое PST файла можно импортировать не в корень ящика Exchange, а в одну из уже существующих папку ящика (например, “Import_mail”). Например, нам нужно импортировать из PST только содержимое папки Inbox (Входящие), скопировав его в папку ящика Exchange с именем Import_mail:
New-MailboxImportRequest -Mailbox mailtst -FilePath \HQFS01PSTusetest.pst -TargetRootFolder "Old_mail" -IncludeFolders "#Inbox#"
После запуска команды импорта, запрос попадает в очередь на обработку сервером Exchange (обработка выполняется на сервере с ролью Client Access Server). Чтобы увидеть содержимое очереди задания импорта, выполните команду:
Get-MailboxImportRequest
Статус выполнения задания импорта (InProgress, Completed, Queued) для конкретного ящика Exchange можно узнать так:
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 "\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
Процедура экспорта содержимого почтового ящика Exchange аналогична импорту. Для экспорта содержимого ящика в PST файл используется командлет New -MailboxExportRequest . Чтобы экспортировать почтовый ящик пользователя mailtst в сетевую папку (каталог должен быть создан предварительно и на него даны права чтения и записи для доменной группы Exchange Trusted Subsystem ) выполните такую команду:
New-MailboxExportRequest –Mailbox mailtst –FilePath \HQFS01ExportPSTmailtst.pst
Если нужно выгрузить в 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”)}
Задание экспорта также попадает в очередь на сервере Exchange. Чтобы проверить статус задания экспорта, выполните команду:
Get-MailboxExportRequest -Mailbox "mailtst" | Format-List
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
Вы можете массово выгрузить ящики нескольких пользователей. Создайте текстовый файл следующего формата:
Username, UNCPathtoPst
aaivanov,\HQFS01ExportPSTaaivanov.pst
ebpetrov,\HQFS01ExportPSTebpetrov.pst
Запустите экспорт ящиков пользователей в PST файлы:
Import-CSV "C:psuser_to_export_pst.csv" | ForEach {New-MailboxExportRequest -Mailbox $_.username -FilePath $_.UNCPathtoPst
Если говорить о том, какие лучшие дистрибутивы Linux мы знаем, то этот список может быть…
Хотя Ubuntu и поставляется со встроенным обозревателем Firefox многие пользователи считают что это не самая…
Что такое Remmina? Remmina — это совершенно бесплатный и свободный клиент так называемого удаленного рабочего…
Как мы знаем, Ubuntu это самая популярная сборка из систем на базе ядра Linux. У…
Выбор ноутбука для каждого пользователя это довольно кропотливый процесс. Люди стараются подобрать ноутбук который будет…
Если вы решили ознакомиться с операционной системой Linux более детально и задались вопросом как установить…