Механизм создания и распространения оффлайновой адресной книги между версиями Exchange 2010 и Exchange 2016 сильно различается. Поэтому процесс переключения на OAB, находящийся на Exchange 2016, в процессе миграции нужно будет продумывать очень внимательно.
Старый механизм (Exchange 2010) работал следующим образом:
- Выделенный сервер с ролью mailbox по расписанию генерировал файлы OAB
- После создания обновлённой OAB она скачивалась на серверы с ролью Client Access Server в веб-директории
- Клиент Outlook обращался в эти веб-директории (её адрес он получал от службы автообнаружения) и скачивал локально файлы OAB
Подробнее процесс описан тут.
Новый механизм (Exchange 2013/2016) работает так:
- Специальный робот OABGeneratorAssistant генерирует OAB на сервере, где находится активная база со специальным арбитражным ящиком. У специального арбитражного ящика должна быть включена функция OrganizationCapabilityOABGen. По умолчанию она включена в ящике SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}
- Затем сгенерированная OAB выгружается в веб-директорию на этом же сервере
- Клиент 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”