Проблема: после установки WMF 3 на сервер Windows Server 2008 R2, где работает Forefront Identity Manager 2010 R2, в один прекрасный момент выяснилось, что не работает скрипт на VBScript, который выполняется по шедулеру, обращается к FIM и запускает агенты синхронизации.
(Такой скрипт можно сгенерировать средствами оснастки управления FIM и доработать ручками под конкретные условия.)
Проверка показала, что задания запускаются исправно и… зависают, при этом синхронизация не выполняется.
После ручного запуска скрипта из командной строки, он выдал ошибку с кодом 0x8004100E, которая говорит о том, что происходит ошибка обращения к WMI. Ручные проверки с помощью wbemtest и Powershell показали, что пространство имен root\MicrosoftIdentityIntegrationServer не существует. Собственно эти факты и заставили задуматься, что же такое делали на сервере, что изменились настройки WMI – и ответ был: установка WMF 3, который, как известно, добавляет в WMI новые возможности и, как следствие, вызывает перестроение базы MOF.
Небольшие изыскания помогли найти решение:
1. Запускаем командную строку с повышенными правами
2. Переходим в директорию C:\Program Files\Microsoft Forefront Identity Manager\2010\Synchronization Service\Bin
3. Выполняем команду:
mofcomp mmswmi.mof
При этом на экран было выдано сообщение:
WARNING: File mmswmi.mof does not contain #PRAGMA AUTORECOVER.
If the WMI repository is rebuilt in the future, the contents of this MOF file wi
ll not be included in the new WMI repository.
To include this MOF file when the WMI Repository is automatically reconstructed,
place the #PRAGMA AUTORECOVER statement on the first line of the MOF file.
Это собственно и объясняет, почему перестроение WMI, вызванное установкой WMF 3, привело к удалению пространства имен FIM.
После компиляции mmswmi.mof все скрипты запустились успешно и синхронизация заработала.
Вполне возможно, что установка WMF 3 может оказать такой же эффект на другие продукты использующие/предоставляющие WMI. Теперь вы знаете, как найти решение.
Дополнение (10/31/2012)
Оказывается теперь периодически запускается процесс перекомпиляции репозитория WMI, что приводит к потере пространства имен FIM. Нужно добавить mof файл в список файлов, которые перекомпилируются автоматически. Делается это командой:
mofcomp -Autorecover mmswmi.mof
Либо можно добавить в файл #PRAGMA AUTORECOVER
Filed under: Без рубрики | Leave a comment »