Миграция на Exchange 2016: перенос OAB

Механизм создания и распространения оффлайновой адресной книги между версиями Exchange 2010 и Exchange 2016 сильно различается. Поэтому процесс переключения на OAB, находящийся на Exchange 2016, в процессе миграции нужно будет продумывать очень внимательно.

Старый механизм (Exchange 2010) работал следующим образом:

  1. Выделенный сервер с ролью mailbox по расписанию генерировал файлы OAB
  2. После создания обновлённой OAB она скачивалась на серверы с ролью Client Access Server в веб-директории
  3. Клиент Outlook обращался в эти веб-директории (её адрес он получал от службы автообнаружения) и скачивал локально файлы OAB

Подробнее процесс описан тут.

Новый механизм (Exchange 2013/2016) работает так:

  1. Специальный робот OABGeneratorAssistant генерирует OAB на сервере, где находится активная база со специальным арбитражным ящиком. У специального арбитражного ящика должна быть включена функция OrganizationCapabilityOABGen. По умолчанию она включена в ящике SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}
  2. Затем сгенерированная OAB выгружается в веб-директорию на этом же сервере
  3. Клиент Outlook обращается в эту веб-директории (её адрес он получает от службы автообнаружения) и скачивает локально файлы OAB

Подробно процесс описан тут.

В процессе миграции OAB есть одна тонкость – мы OAB не мигрируем. Мы клиентов переключаем на новый OAB, которая генерируется по новой схеме. Схема миграции будет выглядеть примерно следующим образом:

  • Создаём отдельный арбитражный ящик и включаем в нём функцию OrganizationCapabilityOABGen (делать это необязательно, так как у нас имеется ящик SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}, который можно использовать для этих целей):
New-Mailbox -Arbitration -Name "OAB Mailbox" -Database db1 -UserPrincipalName oab@o365lab.pro
Set-Mailbox -Arbitration oab -OABGen $true
  • Создаём новую OAB и копируем в неё адресные списки из старой OAB:
$OAB = Get-OfflineAddressBook 'Old Address Book'
New-OfflineAddressBook -Name "New Address Book (Ex2016)" -AddressLists $OAB.AddressLists
  • Привязываем новую OAB к новому арбитражному ящику, который будет заниматься генерацией OAB:
$mbx = Get-Mailbox 'OAB Mailbox' -Arbitration
Set-OfflineAddressBook 'New Address Book (Ex2016)' -GeneratingMailbox $mbx.Identity
  • Имеет смысл включить GlobalWebDistributionEnabled и ShadowMailboxDistributionEnabled (что это такое можно посмотреть тут)
Set-OfflineAddressBook "New Address Book (Ex2016)" -VirtualDirectories $null 
-GlobalWebDistributionEnabled $true -ShadowMailboxDistributionEnabled $true
  • Запускаем обновление OAB и переназначаем её всем базам:
Update-OfflineAddressBook 'New Address Book (Ex2016)'
Get-MailboxDatabase | Set-MailboxDatabase -OfflineAddressBook 'New Address Book (Ex2016)'

На выходе мы получаем новую OAB, которая создаётся на серверах Exchange 2016 и которую используют все ящики, которые смигрировали на Exchange 2016.

Полезные ссылки:
Understanding Offline Address Books (Exchange 2010)
Offline address books in Exchange 2016
OAB Improvements in Exchange 2013 Cumulative Update 7
OAB Improvements in Exchange 2013 Cumulative Update 5
OAB in Exchange Server 2013
Managing OAB in Exchange Server 2013

2 thoughts on “Миграция на Exchange 2016: перенос OAB

Leave a Reply

Your email address will not be published. Required fields are marked *