В нашей корпоративной системе регистрации заявок от пользователей не так давно был зарегистрирован инцидент. Пользователь пожаловался на то, что в его почтовом клиенте Microsoft Outlook перестала обновляться информация из глобального адресного списка предприятия (GAL). При этом при попытке форсировать процесс обновления GAL вручную возникает ошибка:
Task reported error (0x8004010F): The operation failed. An object cannot be found.
Так же, при попытке открыть предопределённые адресные списки, например All Users из раздела All Address Lists….
почтовый клиент выдаёт сообщение:
Не удается отобразить список адресов. Отсутствует подключение к Microsoft Exchange. Для завершения операции требуется постоянное или временное подключение Outlook к серверу.
В то же время, Outlook имеет работоспособное подключение к серверу Exchange и в состоянии отправлять и принимать почту:
Диагностируем проблему
В попытке разрешения проблемы на уровне отдельно взятого клиента был удалён клиентский профиль Outlook с последующей попыткой настройки подключения к серверу Exchange. Однако это привело к схожей ошибке:
Отсутствует подключение к Microsoft Exchange.
Попытаемся диагностировать проблему на стороне сервера Exchange выполнив PS-командлет:
Test-OutlookWebServices | fl | Out-File D:\Tests\Autodiscover.txt
Проанализировав полученный файл, мы увидели в тестах механизмов Autodiscover и OfflineAddressBook (OAB) любопытные ошибки…
RunspaceId : 429edf83-3c4a-4004-bff8-d433ac710bf2 Source : ServerName ServiceEndpoint : autodiscover.corp.firma.com Scenario : AutoDiscoverOutlookProvider ScenarioDescription : Автообнаружение: поставщик Outlook Result : Failure Latency : 70 Error : Microsoft.Exchange.Management.Tasks.ServiceValidatorException: The Autodiscover response did not return a URL for Offline Address Book
…
RunspaceId : 429edf83-3c4a-4004-bff8-d433ac710bf2 Source : ServerName ServiceEndpoint : Scenario : OfflineAddressBook ScenarioDescription : Автономная адресная книга Result : Skipped Latency : 0 Error : Skipped testing Offline Address Book because the Autodiscover step failed. Verbose : MonitoringEventId : 5004
После этого мы проверили все URL на сервере Exchange для механизмов OAB и Autodiscover, – они были настроены корректно. В конечном итоге проблему помог решить ряд шагов описанных далее.
Решаем проблему
Создаем новую автономную адресную книгу, в которую будут входить все адресаты нашей организации Exchange (название новой OAB должно быть уникальным, то есть отличаться от старого названия):
New-Offlineaddressbook "New Offline Address Book" -AddressLists "Default Global Address List"
Назначаем вновь созданную адресную книгу виртуальным директориям на серверах Exchange Front End (Client Access Server) и Exchange Back End (MailBox Server):
Set-OfflineAddressBook "New Offline Address Book" -VirtualDirectories "NameServer\OAB (Default Web Site)", "NameServer\OAB (Exchange Back End)"
Далее получаем список баз данных почтовых ящиков и передаём его по конвейеру в PS-командлет определяющий адресную книгу (в нашем случаи вновь созданную) для каждой базы:
Get-MailboxDatabase | Set-MailboxDatabase -OfflineAddressBook "New Offline Address Book"
Затем перезапускаем на каждом сервере службу MSExchangeMailboxAssistants (отвечает за генерацию OAB):
Restart-Service MSExchangeMailboxAssistants
Также перезапускаем пул приложений IIS Application Pool - MSExchangeAutodiscoverAppPool:
Теперь можно удалить “старую” автономную адресную книгу:
Remove-Offlineaddressbook "Default Offline Address Book"
Далее запускаем принудительное формирование автономной адресной книги:
Update-OfflineAddressBook "New Offline Address Book"
При этом обратим внимание на пути, где OAB располагает свои файлы (по умолчанию - C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\OAB). Здесь мы увидим .xml файл OAB:
Если описанная ранее проблема не исчезает после проделанных манипуляций, то возможно дополнительно потребуется полный перезапуск IIS серверах Exchange.
В конечном итоге, в нашем случае адресная книга стала успешно обновляться, а профиль Outlook создался без ошибок. Проверив результаты Test-Outlookwebservices мы убедились в том, что все тесты проходят без ошибок.
Спасибо, отличная статья! У меня такая же проблема возникла при переходе на 2016 экс, так что материал статьи применим и к новой версии.
Спасибо! 2019 год, а статья еще помогает людям)
И в 2021 здорово помогает
Спасибо за статью, помогла.