В первой части этого цикла статей о новой функции запрос перемещения (move request) в Exchange 2010 мы рассмотрели, что собой представляет эта функция и узнали, что для выполнения процесса перемещения почтовых ящиков используется служба Microsoft Exchange Mailbox Replication. Затем мы создали новый локальный запрос перемещения с помощью консоли Exchange Management Console. Очевидно, что также можно использовать Exchange Management Shell для создания запроса перемещения, о чем и пойдет речь в этой части цикла. Как вы, возможно, догадались, есть дополнительные параметры в запросах перемещения, которыми можно управлять с помощью Exchange Management Shell, и которые недоступны при работе с консолью Exchange Management Console. Соответственно, в этой части цикла мы более подробно углубимся в эти параметры по сравнению с предыдущей частью о работе в консоли Exchange Management Console.
Создание запроса перемещения с помощью PowerShell
Для создания локального запроса перемещения с помощью оболочки Exchange Management Shell можно воспользоваться командой New-MoveRequest и связанными с ней параметрами. Простая команда для создания локального запроса перемещения для перемещения одного почтового ящика из одной базы данных в другую может выглядеть следующим образом:
New-MoveRequest 'Identity neil 'TargetDatabase 'Mailbox Database 004'
Здесь параметр Identity используется для указания почтового ящика, который будет перемещен, а параметр TargetDatabase указывает базу данных, в которую будет перемещен почтовый ящик. Выполнение этой команды создаст результаты, похожие на те, что показаны на рисунке 6.
Увеличить
Рисунок 6: Команда New-MoveRequest
На рисунке 6 вы заметите, что некоторая информация в столбцах несколько неясная при стандартном форматировании, используемом в Exchange Management Shell. Чтобы исправить эту ситуацию, можно прогнать результаты команды New-MoveRequest через команду format-table (сокращенную до ft в примере ниже), а также воспользоваться параметрами 'AutoSize и 'Wrap, как показано в этом примере:
New-MoveRequest 'Identity neil 'TargetDatabase 'Mailbox Database 004' | ft 'AutoSize -Wrap
Это предоставляет результаты, подобные тем, что показаны на рисунке 7, что значительно упрощает чтение данных.
Увеличить
Рисунок 7: Форматированная команда New-MoveRequest
Здесь я также хочу упомянуть об ошибке, с которой вы можете встретиться на данном этапе. Если я сейчас попробую переместить тот же почтовый ящик в другую базу данных, я получу следующее сообщение об ошибке:
Mailbox {name} has a completed move request associated with it. Before you create a new move request for the mailbox, run the Remove-MoveRequest cmdlet to clear the completed move request.
Это сообщение об ошибке показано на рисунке 8.
Увеличить
Рисунок 8: Ошибка New-MoveRequest
Как говорится в сообщении об ошибке, для почтового ящика уже имеется полный запрос перемещения, который необходимо удалить, прежде чем создавать другие запросы перемещения. Таким образом, это означает, что запрос перемещения должен быть удален сразу после его выполнения.
Примечание: запросы перемещения не удаляются автоматически даже при успешном перемещении почтового ящика. Это также имеет последствия для удаления баз данных почтовых ящиков, которые мы рассмотрим позже в этом цикле статей. Мы также рассмотрим управление запросами перемещения далее.
Команда New-MoveRequest содержит множество доступных параметров, которые можно использовать для управления запросами перемещения. Как вы, возможно, ожидали, если знакомы с Exchange 2007, в оболочке Exchange Management Shell есть больше способов контроля запроса перемещения, чем в консоли Exchange Management Console. Полный список всех параметров можно найти здесь, но в этой статье я опишу несколько самых важных параметров:
- BadItemLimit - как было показано на рисунке 5, можно решать, сколько поврежденных элементов почтового ящика программа может допускать при перемещении ящика. В Exchange Management Shell параметр BadItemLimit управляет этой настройкой.
- BatchName - это полезный параметр, позволяющий указывать имя пакета при перемещении нескольких почтовых ящиков. Затем можно использовать это имя пакета для поиска конкретных почтовых ящиков при использовании команды Get-MoveRequest, о чем я расскажу в третьей части этого цикла.
- IgnoreRuleLimitErrors - если вы столкнетесь с ошибками ограничения правил во время перемещения почтового ящика, вы можете не перемещать правило пользователя в качестве части почтового ящика. Этот параметр позволяет вам это делать. Например, вы можете изменить параметры запроса перемещения после его предоставления, чтобы убедиться, что правила не обрабатываются. Об этом мы также поговорим в третьей части цикла.
- MRSServer - обычно запрос перемещения обрабатывается одним сервером Client Access Servers сайта Active Directory. Чтобы указать конкретный сервер Client Access Server, используйте параметр MRSServer совместно с Fully Qualified Domain Name (FQDN) именем сервера Client Access Server.
- SuspendWhenReadyToComplete - этот параметр используется для приостановки запроса перемещения, прежде чем почтовый ящик будет окончательно перемещен в целевую базу. Другими словами все действительные данные почтового ящика перемещаются, но окончательное перемещение не происходит, пока администратор не возобновит перемещение с помощью команды Resume-MoveRequest. Одной из ситуаций, в которых можно использовать такой подход, будет ситуация получения окончательного одобрения на перемещение почтового ящика. Этот параметр будет рассмотрен в третьей части этого цикла статей.
Управление целевыми базами данных
Интересным является то, что параметр TargetDatabase команды New-MoveRequest, на самом деле, является необязательным. В примерах, приведенных в начале этой статьи, видно, что данный параметр использовался, чтобы убедиться в том, что почтовый ящик был перемещен в базу под названием Mailbox Database 004. Если вы исключите параметр TargetDatabase, процесс запроса перемещения автоматически выберет базу данных.
Если у вас одна и более баз данных почтовых ящиков, которые вы хотите исключить из этого процесса выбора, то вы можете изменить значение параметра IsExcludedFromProvisioning базы данных, которую хотите исключить. Этот параметр показан на рисунке 9, где он указан в значении по умолчанию false, означающем, что база данных доступна для заполнения почтовых ящиков. Если бы я хотел изменить значение этого параметра для базы данных Mailbox Database 004 на true, я бы выполнил следующую команду:
Set-MailboxDatabase 'Mailbox Database 004' 'IsExcludedFromProvisioning $True
Увеличить
Рисунок 9: Исключение баз почтовых ящиков из запроса перемещения
Управление запросами перемещения
Теперь, когда локальный запрос перемещения создан, вам нужно отследить его прогресс. В консоли Exchange Management Console нажмите на объект Move Request, расположенный в узле Recipient Configuration в древе консоли. Это вызовет окно подобное тому, что показано на рисунке 10. На этом рисунке я удалил панель действий для большей ясности.
Увеличить
Рисунок 10: Управление запросом перемещения
Здесь видно, что отображен список запросов перемещения. На данный момент в прогрессе находится только один запрос перемещения, и поле состояния запроса Move Request Status показывает статус перемещения Moving. По умолчанию в консоли показываются только поля Имя дисплея (Display Name), Псевдоним (Alias), Состояние запроса перемещения (Move Request Status) и Тип запроса перемещения (Move Request Type). Есть два способа расширить информацию, которая будет вам доступна:
- В консоли Exchange Management Console выберите меню Вид (View), затем опцию Добавить или удалить столбцы ( Add/Remove Columns'), чтобы вызвать окно Add/Remove Columns, как показано на рисунке 11. Здесь видно, что поля Имя (Name), Имя удаленного хоста (Remote Host Name), Исходная база данных (Source Database) и Целевая база данных (Target Database) также доступны. Используя различные кнопки, имеющиеся на экране, вы можете указывать, какие дополнительные поля отображать, а также порядок, в котором они будут отображены.
Увеличить
Рисунок 11: Добавление дополнительных информационных столбцов
- Другим способом добавления информации в консоли Exchange Management Console является просмотр свойств запроса перемещения. Для этого просто нажмите правой клавишей на запросе перемещения и выберите Свойства (Properties) в контекстном меню. Это вызовет окно свойств запроса перемещения, похожее на то, что отображено на рисунке 12.
Рисунок 12: Свойства запроса перемещения
Одним из самых интересных полей, представленных на рисунках 10 и 12, является поле состояния Move Request Status. На рисунке 12 видно, что состояние указано как Completing, но конечно это поле может принимать и такие значения, как InProgress, Completed, Failed и т.д. Это позволяет вам видеть, на какой стадии находится запрос перемещения в общем процессе.
Заключение
На этом закончим вторую часть цикла о перемещении почтовых ящиков в Exchange 2010, в которой мы узнали, как создавать запрос перемещения с помощью Exchange Management Shell, а затем перешли к рассмотрению того, как начать управлять этим запросом. В третьей части мы завершим рассмотрение запросов перемещения разговором о некоторых дополнительных темах управления запросами, а также о некоторых дополнительных параметрах настройки.