среда, 18 мая 2011 г.

Import / Export Mailbox в Exchange Server (теория)

imageЧасто возникают ситуации, когда администраторам почтовых серверов необходимо получить доступ к содержимому почтовых ящиков пользователей, например, с целью резервного копирования, поиска документов, лечения от вирусов, и т.п.. Для реализации подобных задач используются операции экспорта и импорта. Давайте рассмотрим эти операции подробнее и акцентируем внимание на изменениях в методике управления ими, произошедшие после выхода сервера Microsoft Exchange 2010 SP1.

Как это было…

Многие администраторы помнят сервера Microsoft Exchange Server 2000 и 2003, реже встретишь того, кто видел сервер версии 5.5 или 4.0. Естественно, что эти программные продукты значительно отличались друг от друга, но есть то, что их объединяло — это утилита Microsoft Exchange Server Mailbox Merge (ExMerge.exe), которая обладала следующими возможностями:

  • Экспорт содержимое почтовых ящиков (в том числе поврежденных) из базы данных в PST-файл;
  • Импорт данные в базу данных из PST-файла;
  • Поиск по базе данных и удаление из неё сообщений определенного типа. Например, сообщений, содержащих вирус;
  • Извлечение правил для папок.

Зачастую утилита ExMerge.exe применялась в качестве агента резервного копирования. Также с ее помощью можно было перемещать почтовые ящики на другой сервер используя экспорт данных в PST-файл с последующим его импортом.

И казалось, что все замечательно, это именно то, что нужно и улучшать тут нечего. Но прогресс не стоит на месте и к выходу Microsoft Exchange 2007 разработчики решили кое-что изменить.

Microsoft Exchange Server 2007

Microsoft Exchange Server 2007 появился на рынке почтовых серверов когда во все продукты компании Microsoft стал быстрыми темпами внедряться PowerShell. Простая и надежная утилиту Exmerge.exe была заменена двумя командлетами - Import-Mailbox и Export-Mailbox. Отметим, что их функционал был реализован не полностью и не оправдал ожиданий системных администраторов.

В предыдущие версии Microsoft Exchange был включен провайдер Messaging API (MAPI), который и использовала утилита Exmerge.exe. Начиная с версии Microsoft Exchange 2007 архитектура сервера изменилась, была удалена поддержкаCOM-объектов и как следствие был удален MAPI провайдер. Но для работы командлетов экспорта и импорта MAPI все также необходим, поэтому для успешного выполнения операций необходимо было установить Microsoft Outlook на сервер с ролью Mailbox или скопировать требуемые библиотеки .NET Framework на сервер и подключить их к файлу PowerShell сценария.

Microsoft Exchange Server 2010

С выходом новой версии Microsoft Exchange 2010 ситуация с импортом и экспортом данных почтовых серверов мало изменилась. Принципиальным отличием новой версии от старой стала возможность удаленного подключения к Microsoft Exchange Server с помощью Remote PowerShell. При этом не исчезла необходимость устанавливать Microsoft Outlook 2010 64-бит на сервер с ролью Mailbox (MAPI провайдер всё также жизненно необходим).

В Microsoft Exchange Server 2010 добавлена возможность выполнять операции экспорта из графической оболочки управления (EMC). Для этого нужно выбрать в контекстном меню выбранного почтового ящика действие Export Mailbox (рис.1).

1

Рис.1: Экспорт при помощи EMC.

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

Достоинства и недостатки командлетов Export–Mailbox и Import–Mailbox

Сформулируем список условий, которые должны быть соблюдены для успешного выполнения операций импорта и экспорта на серверах Microsoft Exchange Server 2007 и Microsoft Exchange Server 2010:

  • Необходимо установить Microsoft Outlook на роль сервера почтовых ящиков (при этом для Microsoft Exchange Server 2010, Microsoft Outlook 2010 должен быть 64-х битным);
  • Экспортируемый и импортируемый почтовый ящик должны быть расположены в одном лесу;
  • Пользователь должен обладать соответствующими правами доступа:
    • В Exchange 2007 добавление прав делается для каждого ящика при помощи команды:

Add-MailboxPermission -Identity UserMailbox -User Admin -AccessRights FullAccess

    • В Exchange 2010 необходимо включить пользователя в группу ролей RBAC – Mailbox Import Export, следующим образом:

New-RoleGroup -Name "Import-Export Admins" -Roles "Mailbox Import Export" -Members Admin

Процесс экспорта или импорта может затянуться на продолжительное время, и пока он не завершиться запустить другой запрос невозможно.

Так же нужно знать, что при экспорте поиск не ведется в скрытой папке элементов для восстановления (Recoverable Items Folder), т. е. нельзя обработать удаленные пользователем письма.

Microsoft Exchange Server 2010 SP1

Как правило, недоработки и неудобства в новых программных продуктах компании Microsoft корректируются в пакете исправлений (Service Pack). Microsoft Exchange 2010 — не исключение. Во время подготовки первого пакета исправлений, разработчики уделили внимание операциям экспорта и импорта, серьезно изменив функционал командлетов. Был полностью изменен набор командлетов и условия запуска этих операций. Для выполнения экспорта и импорта данных на сервере Microsoft Exchange 2010 SP1 должен быть выполнен следующий ряд условий:

  • Служба Exchange Mailbox Replication (MRS) должна быть запущена на CAS-сервере, т.к. она теперь используется для обработки запросов;
  • Должны использоваться только UNC пути при работе с PST файлами, например \\server\PST-Files\test.pst;
  • Группе Exchange Trusted Subsystems должен быть разрешен полный доступ на общую папку с PST файлами;
  • Пользователь должен быть включен в группу ролей RBAC – Mailbox Import Export.

Новый набор командлетов

На замену двум командлетам пришли 14 новых. Для импорта и экспорта используется 6 команд: New, Get, Set, Remove, Suspend и Resume и, соответственно, глаголы MailboxImportRequest и MailboxExportRequest. Оставшиеся 2 командлета используются для просмотра информации о совершенных операциях.

Кратко рассмотрим их описание:

Командлеты New-, Get-, Set-, Remove-, Suspend-, Resume-MailboxImportRequest – применяются для создания нового запроса импорта данных из PST-файлов в почтовый ящик Exchange 2010 SP1, либо в архивный почтовый ящик (New); для просмотра детальной информации о запросе (Get); изменения запроса (Set); его удаления (Remove), при этом удалять запросы необходимо, поскольку после завершения они автоматически не удаляются; остановки (Suspend); перезапуска (Resume) приостановленного, либо неудачно завершенного запроса.

Командлеты New-, Get-, Set-, Remove-, Suspend-, Resume-MailboxExportReques – аналогичны первому набору, но действуют с точностью до наоборот — используются для создания нового запроса на экспорт данных в PST-файл из почтового ящика Microsoft Exchange Server 2010 SP1, либо архивного почтового ящика.

Командлеты Get-MailboxImportRequestStatistics / Get-MailboxExportRequestStatistics – используется для просмотра детальной информации об операциях импорта и экспорта, соответственно.

Перечислим основные достоинства и недостатки изменений, внесенных в первый пакет исправлений для операций экспорта и импорта в Microsoft Exchange Server 2010 SP1.

 

Достоинства нового подхода к операциям экспорта и импорта

Полностью изменен механизм работы операций экспорта и импорта данных. В Microsoft Exchange Server 2010 SP1 данный процесс интегрирован в службу Exchange Mailbox Replication (MRS), поэтому необходимость в MAPI провайдера отпала и теперь не нужно устанавливать Microsoft Outlook на сервер.

Реализован одновременный запуск нескольких параллельных процессов импорта или экспорта. При этом для первых десяти процессов автоматически генерируется идентификатор. Если требуется запустить большее количество запросов, то идентификатор необходимо задавать как значение параметра Name, либо вручную удалять уже завершенные процессы.

Если запущенно одновременно несколько операций для одного почтового ящика, то Microsoft Exchange Server самостоятельно отслеживает образование дубликатов записей и удаляет лишние из них.

Командлеты Export-Mailbox и Import-Mailbox не могли работать с архивным почтовым ящиком пользователя (Personal Archive), теперь эта возможность реализована при помощи аргумента IsArchive.

Благодаря службе Exchange Mailbox Replication (MRS), значительно увеличилась скорость поиска и возможности фильтрации сообщений. В связи с этим был добавлен аргумент -ContentFilter, при помощи которого можно гибко настраивать фильтрацию результатов поиска. Подробнее про ContentFilter читаем здесь (http://technet.microsoft.com/ru-ru/library/ff601762.aspx)

Теперь по умолчанию включен поиск в папке элементов для восстановления (Recoverable Items folder), в результате чего содержимое этой папки будет также обрабатываться. Отключить обработку Recoverable Items Folder можно при помощи параметра -ExcludeDumpster.

Недостатки нового подхода к импорту и экспорту записей

К сожалению, в новой версии Microsoft Exchang Server невозможно удалить содержимое почтового ящика с помощью новых командлетов. Для выполнения этой процедуры необходимо использовать командлет Search-Mailbox с параметром DeleteContent.

Также не поддерживается экспорт в почтовый ящик, поэтому придется работать исключительно с PST-файлами. При этом возможна работа только с UNC путями, следовательно, папка с PST файлами должна быть сетевой, плюсом к этому, у нее должен быть организован доступ для группы Exchange Trusted Subsystems.

Невозможно работать с почтовыми ящиками, которые в данный момент не подключены. Сначала необходимо подключить почтовый ящик к одной из учетных записей Active Directory, а только потом выполнять с ним какие-либо манипуляции.

2 комментария:

Unknown комментирует...

Да в предыдущих версиях Exchange было удобно.
А сейчас проще держать рядом с почтовиком, на одном из "технических" серверов(наверняка такие у большинства админов есть в сети) установленный outlook. По необходимости даем сами себе права "Full Access permission" запускаем клиента- и через короткий промежуток времени имеем полные возможности по "разбору" почтового ящика пользователя.

Алексей Руссков комментирует...

Экспортировал из Exchange 2007 ящик в pst, импортирую в ящик на Exchange 2010. При этом ипортировались из pst не все письма. В чем может быть проблема? ни как не вкуриваю (

Отправить комментарий