Перемещение почтовых ящиков Exchange 2013

перемещение почтовых ящиков Exchange 2013Перемещение почтовых ящиков Exchange 2013 из одной БД в другую можно достаточно легко выполнить через EAC (Exchange Admin Center), но в этой статье я рассмотрю вариант переноса с помощью powershell, т.к. веб-интерфейс даже версии SP1 достаточно сырой и периодически возникают ошибки в заданиях при банальном перетаскивании ящика из одной базы в другую.


Найти больше информации по настройке и администрированию Exchange 2013 на моем блоге вы сможете в основной статье тематики — Exchange 2013 — Установка, настройка, администрирование.


Перемещение почтовых ящиков Exchange 2013

Для создания запросов перемещения ящиков между базами данных используется командлет New-MoveRequest 1. Пример полной команды будет выглядеть следующим образом:

[PS] C:\Windows\system32>New-MoveRequest -Identity «mailbox_name@bissquit.com» -TargetDatabase «Name of you target database» -BatchName «Enter your request name» -BadItemLimit «200»

Exchange 2013 New-MoveRequest

Запрос на перемещение сделали, отлично. Но что, если ящик имеет либо большой размер, либо огромное количество элементов и вы просто хотите отследить прогресс операции, который в самом начале показался в столбце PercentComplete? Тут наступает самое интересное, потому что для отслеживания прогресса выполнения задания нам будет нужен уже другой командлет, вот он: Get-MoveRequestStatistics 2.

Пример использования на основе данных из команды в начале статьи:

[PS] C:\Windows\system32>Get-MoveRequestStatistics -Identity mailbox_name@bissquit.com

А вот и вывод команды:

Exchange 2013 New-MoveRequestStatistics

Справа можно увидеть столбец с процентом выполнения задачи.

Следует отдельно рассказать о параметре BadItemLimit командлета New-MoveRequest: он отвечает за количество поврежденных элементов, которое будет пропущено. По умолчанию, если его не указывать, он равен 0 и Microsoft строго рекомендуют его не трогать. Однако если в ящике присутствуют поврежденные элементы, запрос будет завершаться с ошибкой и ящик останется в той же самой базе данных. На моей практике при переносе двух сотен ящиков из одних баз в другие (при миграции с Exchange 2010 на 2013) было не больше 2-4 ящиков с хотя бы одним поврежденным элементом, при том что 2010 сервер работал несколько лет. Поэтому можно сделать вывод, что при грамотном администрировании Exchange случаев с присутствием поврежденных элементов у вас будет достаточно мало.

Также хочу отметить, что если значение BadItemLimit у вас больше 50, то нужно принудительно указать ключ AcceptLargeDataLoss, по крайней мере так написано на Technet, но реально я всегда ставил количество элементов 200 и меня ни разу никто не спросил о том, согласен ли я на «большие потери данных» и не запретил при этом выполнение команды (см. первый скриншот, параметр AcceptLargeDataLoss там не указан).

Надо отметить, что концепция Exchange 2013 состоит в том, что центры администрирования включают в себя только базовый функционал, минимальный набор. Для получения же доступа к тонким параметрам, а зачастую даже к некоторым функциям (например, к операциям над Offline Address Book, но об этом в другой раз), нужно использовать исключительно Powershell.

comments powered by HyperComments