Как устаревшие ссылки могут влиять на процесс создания автономной адресной книги...

Оригинал статьи опубликован в среду, 14 сентября 2011 г.

В Exchange все группы рассылки или группы безопасности с поддержкой электронной почты, содержащие устаревшие ссылки, будут влиять на процесс создания автономной адресной книги, приводя к ее неправильной репликации. Хотя эта проблема и существует со времени выпуска Active Directory в Windows 2000, она малоизвестна. Проблема связана с принципом работы процесса создания автономной адресной книги.

Для устранения проблемы имеется пара вариантов. Необходимо либо удалить и заново создать соответствующие группы, либо выполнить повторное размещение раздела Active Directory, содержащего группы с устаревшими ссылками.

Что такое устаревшие ссылки?

Определенное понимание того, что такое "ссылка" в Active Directory, может дать следующее описание.

Некоторые межобъектные ссылки в Active Directory требуют обратных ссылок для удобства работы или администрирования. Например, если атрибут managedBy является атрибутом объекта, можно посмотреть на объект ObjectA и определить, что объект ObjectA управляется объектом ObjectB. Точно так же, иногда полезно иметь возможность просматривать объект ObjectB и определять, какими объектами управляет объект ObjectB (значения атрибута managedObjects, например). Active Directory поддерживает целостность ссылок между объектами, которые ссылаются друг на друга, поэтому если один объект перемещается в дереве каталогов, ссылка между ним и другими объектами сохраняется. Такая система ссылок реализуется посредством связанных атрибутов.

Два связанных атрибута помечаются в схеме как имеющие одинаковый идентификатор ссылочной пары. Один атрибут помечается как прямая ссылка, а другой — как обратная. Например, в паре ссылок managedBy и managedObjects атрибут managedBy является прямой ссылкой. Поэтому для настройки атрибута managedObjects в пользовательском объекте необходимо перейти к объектам, которые требуется добавить или удалить из пользовательского значения managedObjects, а затем изменить значение managedBy для каждого объекта. Атрибуты обратных ссылок вычисляются при своем запросе действием пользователя.

Чтобы найти все объекты, которыми управляет объект ObjectB, исследуются ссылки для всех записей, в которых имеется ссылочная пара managedBy и managedObjects, и атрибут обратной ссылки определяет объект ObjectB. Ссылочные пары этих записей предоставляют идентификаторы базы данных для всех записей (объектов), которые управляются объектом ObjectB.

Членство в списке рассылки реализуется как в виде прямой ссылочной пары, так и в виде обратной ссылочной пары. Объектами обратной ссылки будут объекты, хранящие атрибут isMemberOfDl. Атрибут прямой ссылки member — это атрибут с несколькими значениями, позволяющий пользователю быть членом нескольких списков рассылки. Обратная ссылка должна всегда быть ссылкой с несколькими значениями, так как невозможно выделить одного создателя ссылок на различные объекты.

Устаревшая ссылка — это атрибут обратной ссылки, содержащий DN (различающееся имя) объекта, который больше не существует в Active Directory. Эти проблемы исходят от серверов глобального каталога (и раздела только для чтения, размещенного в глобальных каталогах), которые не получают надлежащую репликацию от контроллеров домена, доступных для записи, и от доменов, в которых имеются проблемы. Это является причиной того, что глобальные каталоги обычно содержат значение нарушенной устаревшей ссылки, а записываемые контроллеры домена не обязательно подвержены указанной проблеме.

Симптомы проблемы

В процессе создания автономной адресной книги используется функция QueryRows для возврата значений атрибутов из Active Directory. Если возвращаются недействительные данные, в обработчик событий приложения могут возвратиться события ошибок, а процесс OABGen не будет завершен.

События ошибок, связанные с описываемой проблемой:

Источник события

Код события

Строка события

MSExchangeSA

9126

Произошла ошибка 8004010e при вычислении программой OABGen автономного списка адресов для списка адресов "\Глобальный список адресов".

MSExchangeSA

9330

Программа OALGen обнаружила ошибку 8004010e (внутренний ИД 500139c) во время доступа Active Directory ContosoHUB03 для "\Глобальный список адресов".

MSExchangeSA

9339

Active Directory "Сервер узла" возвратил код ошибки 8004010e при создании автономного списка адресов для "\Глобальный список адресов". Последний получатель, возвращенный Active Directory, — "Имя пользователя". Этот автономный адресный список не будет создан.

Недавно опубликованная статья базы знаний, написанная Джастином Тернером, доступна сейчас для получения дополнительных сведений о том, какое отношение устаревшие ссылки имеют к Exchange:

Сбои создания автономной адресной книги Exchange, вызванные тем, что атрибуты содержат устаревшие или неверные данные: события 9126, 9330 и 9339 с приведением ошибки 8004010e (
https://support.microsoft.com/kb/2553698).

Устранение проблемы

Сами инженеры Active Directory периодически чистят устаревшие объекты при помощи служебной программы командной строки repadmin, что является довольно простым процессом. Служба Microsoft ADRAP (программа оценки рисков Active Directory — услуга, предоставляемая нашим клиентам Premier) сообщает, если имеются какие-либо устаревшие объекты в среде Active Directory. Хотя очистка устаревших объектов и является достаточно хорошо известным процессом, устаревшие ссылки не так просто выявить со стороны Active Directory. Однако есть средство Exchange, которое может определять устаревшие ссылки: oabvalidate.exe https://oabvalidate.codeplex.com/. Автор этого средства (Билл Лонг [Bill Long]) активно обновляет его на сайте Codeplex. Средство OABValidate небольшое (менее 800 КБ) и выполняется для заданного контроллера домена. Обычно время выполнения не слишком велико (в зависимости от числа объектов в среде Active Directory). Средство предоставляет список всех групп, содержащих устаревшие ссылки, которые требуется исправить.

Что происходит после установки и запуска Exchange и появления в среде устаревших ссылок? Вы получите ошибки при создании автономной адресной книги, которые могут указывать на то, что имеются устаревшие ссылки, требующие исправления.

Майк О'Нил (Mike O’Neill)

Это локализованная запись блога. Исходная статья находится по ссылке How Lingering Links can impact OAB generation process...