Поделиться через


Отладка расширения Active Directory

Таблицы свойств службы каталогов Microsoft Active Directory, контекстное меню и расширения мастера создания объектов, описанные в этом разделе, реализуются как серверы COM в proc. То есть каждое расширение представляет собой библиотеку DLL, которая выполняется в контексте процесса узла. Для отладки расширения необходимо связать расширение с приложением и запустить приложение в отладчике.

Отладка расширений Active Directory, отображаемых в оболочке Windows

Расширения Active Directory, отображаемые в оболочке Windows, загружаются в контексте процесса Обозреватель.exe. Эти расширения можно отлаживать как стандартное расширение оболочки. Дополнительные сведения об отладке расширений оболочки см. в разделе Отладка с помощью оболочки.

Отладка расширений Active Directory, отображаемых в оснастках MMC Active Directory

Расширения Active Directory, отображаемые в оснастки MMC для администрирования Active Directory, загружаются в контексте консоли управления Майкрософт. Чтобы выполнить отладку расширения, найдите Mmc.exe в локальной системе и задайте отладчику использовать его в качестве приложения для отладки. В большинстве систем Mmc.exe находится в системном каталоге Windows, например C:\WINNT\System32. В зависимости от отладчика может потребоваться или не нужно задать библиотеку DLL расширения, которую также загружает отладчик. Многие отладчики также позволяют подключить отладчик к работающему процессу MMC. Дополнительные сведения см. в руководстве пользователя отладчика.

Это может быть удобно, чтобы MMC автоматически загружал определенную оснастку. Для этого задайте аргументы приложения в путь и имя файла MSC. Это может быть установленный системой MSC-файл или один, который вы создаете. Файл MSC можно создать, выполнив следующие действия.

  1. Запустите Mmc.exe.
  2. Загрузите нужную оснастку, выбрав "Добавить или удалить оснастку" - , в меню MMC и выберите нужную оснастку.
  3. Сохраните MSC-файл, нажав кнопку "Сохранить файл - как..." в меню MMC.

Если вы не настроили файл MSC для запуска, необходимо вручную загрузить нужную оснастку при запуске приложения в отладчике.

При запуске ведущего приложения в отладчике отладчик может отобразить предупреждение о том, что запущенное приложение не содержит символов отладки. Это ожидается и может быть безопасно проигнорировано, так как вы на самом деле отлаживаете библиотеку DLL, а не ведущее приложение.

В большинстве случаев расширение не будет вызываться, пока пользователь не выполнит некоторое действие, которое приводит к загрузке и инициализации расширения. Например, при отладке расширения контекстного меню, отображаемого для пользовательских объектов, расширение не загружается до первого отображения контекстного меню для объекта пользователя.

Теперь вы сможете задать точки останова и просмотреть выходные данные отладки. Если расширение не загружается, задайте точку останова в функции DllGetClassObject расширения. Если dllGetClassObject не вызывается, расширение, вероятно, не зарегистрировано правильно.

По завершении отладки выгрузите MMC и отладчик должен выгрузить его обычно.