Экспорт почтового ящика в PST из Exchange 2010
Иногда необходимо выполнить экспорт почтового ящика пользователя в PST файл.
В Exchange 2003 подобная задача решалась при помощи утилиты ExMerge.
В Exchange 2010 данную задачу можно решить при помощи EMS командлета New-MailboxExportRequest
Чтобы данный командлет был доступен в списке, необходимо предоставить соответсвующие права пользователю.
Для этого необходимо выполнить команду:
New-ManagementRoleAssignment –Role “Mailbox Import Export” –User domain\user
Но логичнее будет выдать необходимые права на группу безопасности. Таким образом если нужно будет в последствии дать подобные права другому пользователю, нужно будет просто включить его в соответствующую группу. Для этого необходимо выполнить команду:
New-ManagementRoleAssignment –Role “Mailbox Import Export” –SecurityGroup “ImportExportGroup”
Так как MailboxExportRequest можно осуществлять лишь по UNC имени, то необходимо создать общую папку на файловом сервере, и предоставить группе Exchange Trusted Subsystem права "Full Control" на эту папку.
После этого можно приступать к экспорту данных.
Тут стоит сделать небольшое замечание по использованию команды. Среди параметров командлета, есть параметр ContentFilter, который позволяет задать условия фильтра, согласно которому будет происходить экспорт. Среди доступных фильтров есть фильтр по дате.
Так вот, при использовании данного фильтра выяснился баг. Если на сервере, на котором запускается командлет экспорта, установлено в формате non-US (например как в России ДД/ММ/ГГГГ), то при использовании фильтра по дате появляется следующая проблема: если число месяца, указанное в фильтре, больше чем 12, выполнение командлета завершиться ошибкой:
The provided ContentFilter value is invalid. ContentFilter is invalid. The value "15/06/2013" could not be converted to type System.DateTime. --> The value "15/06/2013" could not be converted to type System.DateTime.
+ CategoryInfo : InvalidArgument: ((Received -lt "15/06/2013"):String) [], ContentFilterInvalidPermanentException
+ FullyQualifiedErrorId : 2885FD08
Единственное более менее внятное объяснение подобного поведения было найдено тут
If the region format of the computer running the script uses a non-US date format (e.g. Australian or English : DD/MM/YYYY) then the cmdlet converts the input to the local format when it is run. Unfortunately the MRS converts the format to US when it runs. When the day is greater than 12 the cmdlet will run and the export request will be created but when the MRS processes it, it will fail.
It seems that at each step the date is input or stored as a string and converted to date format. Even if you use a date-formatted variable in the cmdlet Exchange will convert it to date format as the cmdlet is run. The MRS then processes the export request and converts the stored date from a string to date format again.
Выходом из систуации являются два варианта:
1) не использовать число месяца больше 12
2) переводить на сервере дату в US формат перед запуском EMC для экспорта
Пример команды, которая выполняет экспорт сообщений, полученных в период до 01.06.2013 из почтового ящика "pochta", исключая содержимое папки "Элементы для восстановления", и сохраняет результат в сетевой папке "PST", расположенной на сервере "FS"
New-MailboxExportRequest -Mailbox "pochta" -ExcludeDumpster -ContentFilter {(Received -lt "01/06/2013")} -FilePath \\fs\pst\pochta.pst
Состояние выполнения запроса можно просматривать при помощи выполнения командлетов Get-MailboxExportRequest и Get-MailboxExportRequestStatistics
Get-MailboxExportRequest | Get-MailboxExportRequestStatistics
Завершенные запросы можно удалить при помощи следующей команды:
Get-MailboxExportRequest -Status Completed | Remove-MailboxExportRequest
Запросы в других состояниях удаляются аналогично, установкой соответствующего статуса в команде.
А вот еще немного ценного. Про множественный экспорт ящиков в pst.
http://www.stevieg.org/2010/07/using-the-exchange-2010-sp1-mailbox-export-features-for-mass-exports-to-pst/
0 коммент.:
Отправить комментарий