Exchange 2007 ошибки генерации OAB (9348 и 9109)

На днях столкнулся с совершенно замечательным случаем неправильно выставленных разрешений.
История умалчивала как этого удалось достичь и в какой момент времени клиенты перестали загружать OAB.

Попробую произвести анализ и описать проделанные действия.

Симптомы:

1. В Application log присутствуют следующие ошибки:

Первая.

Event Type: Error
Event Source: MSExchangeSA
Event Category: OAL Generator
Event ID: 9384
Date:  9/5/2020
Time:  4:12:21 PM
User:  N/A
Computer: EXCH-01
Description:
OALGen only supports alphanumeric and space characters on the offline address name. The offline address list is not going to be published.
- //o=xxxxxx/cn=addrlists/cn=oabs/cn=Default Offline Address Book

и вторая

Event Type: Warning
Event Source: MSExchangeSA
Event Category: OAL Generator
Event ID: 9109
Date:  9/5/2020
Time:  4:12:21 PM
User:  N/A
Computer: EXCH-01
Description:
OALGen encountered an error ffffffff (internal ID 50506c7) while generating address list '//o=xxxxxx/cn=addrlists/cn=oabs/cn=Default Offline Address Book'.  Check other logged events to see if this is a serious error.
- //o=xxxxxx/cn=addrlists/cn=oabs/cn=Default Offline Address Book

2. Клиенты не могут загрузить Offline Address Book по причине того что она не формируется.

Причины:

Процесс генерации OAB не завершался по причине того что разрешения на Default Global Address List были изменены и OALGEN выполняя запрос к Active Directory для поиска объекта msExchOAB, не мог его завершить.

Возвращаясь к теории вспомним что во время генерации OAB процесс System Attendant, читает legacyExchangeDN этого OAB, в данном случае это

/o=EXMAPLE/cn=addrlists/cn=oabs/cn=Default OAB

и затем преобразует его в GUID который будет использоваться, чтобы создать папку

UNC имя – \\EXCH-01\ExchangeOAB\{GUID}
Путь – c:\program files\Microsoft\Microsoft Exchange\ExchangeOAB\{GUID}

Но из-за проблемы с разрешениями этого не происходило.

Лечение:

Контейнер All Global Address List должен иметь следующие разрешения:

  • SYSTEM разрешить
      Read
      Write
      Create All Child Objects
      Delete All Child Objects
      Open Address List
  • Authenticate Users разрешить
      Read
      Open Address List
      List Contents
  • Exchange Servers разрешить
      Read
      Open Address List

Необходимые разрешения были восстановлены при помощи Powershell-скрипта:

# Первым шагом устанавливает необходимый контейнер
$container = "CN=Default Global Address List,CN=All Global Address Lists,CN=Address Lists Container,CN=EXAMPLE,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=EXAMPLE,DC=COM"

# добавляем необходимые полномочия для учетной записи SYSTEM:
Add-ADPermission $container -User System -AccessRights GenericAll

# добавляем необходимые полномочия для группы Authenticated Users:
Add-ADPermission $container -User "Authenticated Users" -AccessRights GenericRead, ListChildren -ExtendedRights Open-Address-Book

# добавляем необходимые полномочия для группы Exchange Servers:
Add-ADPermission $container -User "Exchange Servers" -AccessRights GenericRead -ExtendedRights Open-Address-Book

Буду благодарен, если поделитесь этой статьей:

Приглашаю присоединиться ко мне в следующих сервисах:
facebook Google Plus вКонтакте Twitter
Если Вам понравилась статья, то вы можете подписаться на RSS. А также бесплатно подписаться по E-mail и получать актуальную информацию в числе первых.
Получать обновления на email

Вы можете оставить комментарий.

Добавить комментарий

XHTML: Вы можете использовать тэги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>