mofcomp

Компилятор управляемого формата объектов анализирует файл, содержащий инструкции MOF, и добавляет классы и экземпляры классов, определенные в файле, в репозиторий WMI. MOF-файлы обычно автоматически компилируются во время установки систем, с которыми они предоставляются, но вы также можете скомпилировать MOF-файлы с помощью этого средства.

Дополнительные сведения о поиске и использовании mofcomp.exe см. в статье "Использование средств управления WMI". Сведения об удалении классов и экземпляров из репозитория WMI см. в команде препроцессора pragma deleteclass .

В следующем примере кода показано, как запустить компилятор MOF в файле.

mofcomp
  [-autorecover]
  [-check]
  [-N:<namespacepath>]
  [-class:createonly | -class:forceupdate | 
   -class:safeupdate | -class:updateonly ] 
  [-instance:updateonly | -instance:createonly]
  [-B:<filename>]
  [-WMI]
  [-P:<Password>]
  [-U:<UserName>]
  [-A:<Authority>]
  [-MOF:<path>] 
  [-MFL:<path>] 
  [-AMENDMENT:<Locale>]
  [-ER:<ResourceName>]
  [-L:<ResourceLocale>] 
  <MOFfile>

Переключатели

-autorecover

Добавляет именованный MOF-файл в список файлов, скомпилированных во время восстановления репозитория. Список MOF-файлов автоматического восстановления хранится в разделе реестра:

HKEY_LOCAL_MACHINE\ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ\Microsoft\WBEM\CIMOM\

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

Примечание

Чтобы убедиться, что все определения классов WMI для управляемых объектов восстанавливаются в репозитории WMI, если WMI имеет сбой и перезапуск, используйте инструкцию #pragma автоматического восстановления препроцессора в файле MOF.

-check

Запрашивает, чтобы компилятор выполнял только проверку синтаксиса и выводил соответствующие сообщения об ошибках. С этим коммутатором нельзя использовать другой коммутатор. Если этот параметр используется, подключение к Windows Инструментарию управления (WMI) не установлено, и изменения в репозитории WMI не вносятся.

-N:<namespacepath>

Запрашивает, чтобы компилятор загрузил MOF-файл в пространство имен, указанное как *namespacepath*. Скомпилированный MOF загружается в пространство имен Mofcomp по умолчанию, root\\default, если этот параметр не используется. Можно также вставить команду препроцессора **\#pragma пространство имен ("*путь пространства имен***")** в MOF-файле, чтобы добиться того же эффекта. Если используется параметр **-N:** и команда пространства имен \#pragma , то \#**pragma namespace** **autorecover** имеет приоритет. В этом случае единственным способом компиляции MOF в другое пространство имен является изменение MOF-файла и изменение команды \#**pragma namespace*. Удаленный компьютер можно указать с помощью \\\\machinename\\root\\default.

-class:createonly

Запрашивает, чтобы компилятор не вносит никаких изменений в существующие классы. Если этот параметр используется, операция компиляции завершается, если класс, указанный в MOF-файле, уже существует.

-class:forceupdate

Принудительно обновляет классы при наличии конфликтующих дочерних классов. Например, предположим, что квалификатор класса определен в дочернем классе, а базовый класс пытается добавить тот же квалификатор. В режиме -class:forceupdate компилятор MOF разрешает этот конфликт, удалив конфликтующий квалификатор в дочернем классе. Если дочерний класс имеет экземпляры, принудительное обновление завершается ошибкой.

-class:safeupdate

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

-class:updateonly

Запрашивает, чтобы компилятор не создавал новые классы. При использовании этого параметра операция компиляции завершается, если класс, указанный в MOF-файле, не существует.

-instance:updateonly

Запрашивает, чтобы компилятор не создавал новые экземпляры. Если этот параметр используется, операция компиляции завершается, если экземпляр, указанный в MOF-файле, не существует.

-instance:createonly

Запрашивает, чтобы компилятор не вносит никаких изменений в существующие экземпляры. Если этот параметр используется, операция компиляции завершается, если экземпляр, указанный в MOF-файле, уже существует.

-B:<filename>

Запрашивает создание двоичной версии MOF-файла с именем файла без внесения изменений в репозиторий WMI.

Если вы используете параметр -B:<filename> для создания двоичного MOF-файла, в репозитории WMI хранятся только параметры квалификатора по умолчанию.

Двоичный MOF-формат — это промежуточный формат для объединения драйвера WDM с MOF в качестве ресурса. Двоичный MOF представляет классы и экземпляры так же, как текстовый MOF-файл и сжимается перед сохранением на диске.

-WMI

Запрашивает выполнение компилятором проверки синтаксиса WMI. Параметр -B: должен использоваться с этим параметром. Параметр -WMI используется только для создания двоичных MOF-файлов для использования драйверами устройств WDM. Этот параметр вызывает отдельный двоичный MOF-файл проверки, который запускается после создания двоичного MOF-файла.

-P:<Password>

Указывает пароль в качестве пароля для пользователя компьютера, который необходимо ввести при входе.

-U:<UserName>

Указывает Имя пользователя в качестве имени входа пользователя.

-A:<Authority>

Указывает центр как центр (доменное имя), используемый при входе в WMI.

-MOF:<path>

Имя нейтрального языка выходных данных. Используется с параметром -AMENDMENT , чтобы указать имя файла MOF, нейтрального от языка, который будет создан.

-MFL:<path>

Имя выходных данных конкретного языка. Используется с параметром -AMENDMENT , чтобы указать имя ФАЙЛА MOF для конкретного языка, который будет создан.

-AMENDMENT:<Locale>

Разбивает MOF-файл на версии, не зависящие от языка и зависящие от языка. Компилятор MOF создает нейтральную для языка форму MOF-файла, из которого удалены все измененные квалификаторы. Локализованная версия MOF-файла также создается с расширением MFL-файла. Параметр языкового стандарта задает имя дочернего пространства имен, содержащего локализованные определения классов. Формат параметра языкового стандарта MS_xxx где xxx — шестнадцатеричное значение Windows LCID. Например, языковой стандарт для американского английского языка MS_409.

-ER <ResourceName>

Извлекает двоичный MOF-файл из именованного ресурса. Этот параметр получает двоичный MOF-файл из класса в репозитории WMI, а параметр -B создает двоичный формат MOF из MOF-файла.

-L:<ResourceLocale>

Необязательный элемент. Извлекает локализованные описания MOF из двоичного MOF при использовании с параметром -ER.

<MOFfile>

Имя файла для синтаксического анализа.

Возвращаемые значения

В качестве первой операции компилятор MOF выполняет проверку синтаксиса в MOF-файле. Если компилятор находит ошибки, выводится сообщение об ошибке и процесс завершается.

Компилятор MOF может возвращать следующие значения:

0

Операция компиляции MOF прошла успешно.

1

Компилятор MOF не мог подключиться к серверу WMI. Это вызвано семантической ошибкой, например несовместимостью с существующим репозиторием WMI или фактической ошибкой, например сбоем запуска сервера WMI.

2

Один или несколько параметров командной строки недопустимы.

3

Произошла синтаксическая ошибка MOF.

Если MOF-файл анализируется правильно, но предпринимается попытка выполнить операцию, запрещенную параметром командной строки, компилятор возвращает код ошибки, созданный WMI, а не любой из кодов возврата, перечисленных в списке выше. Например, код ошибки WMI возвращается при указании параметра -instance:updateonly , а MOF-файл пытается создать экземпляр.

Если инструкция препроцессора автоматического восстановления #pragma отсутствует в файле, возвращается следующее предупреждение:

WARNING: FileYourMof.Mof does not contain #PRAGMA AUTORECOVER.
If the WMI repository is rebuilt in the future, the contents of this 
MOF file   will 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.

Remarks

Компилятор MOF доступен в каталоге %Windir%\System32\wbem. MOF-файл необходимо указать в качестве параметра компилятора MOF. Можно также указать параметр автоматического восстановления, если требуется, чтобы MOF-файл автоматически компилировался, если репозиторий CIM когда-либо должен быть автоматически восстановлен. Для получения дополнительной информации введите Mofcomp /? в командной строке.

MOF-файл, использующий кодировку Юникода, содержит сигнатуру в качестве первых двух байтов файла. Эта сигнатура имеет значение U+FFFE или U+FEFF в зависимости от порядка байтов файла.

Если в процессе синтаксического анализа ошибки не возникают, компилятор MOF подключается к серверу WMI, работающему на локальном компьютере, если не указан параметр -check . Классы и экземпляры, определенные в MOF-файле, добавляются в репозиторий WMI.

При возникновении ошибки при обновлении репозитория WMI компилятор не пытается вернуть репозиторий в состояние до начала обработки компилятором.

Windows 8. При установке поставщика mofcomp обрабатывает квалификаторы [Key] и [Static] как истинные, если они присутствуют, независимо от их фактических значений. Другие квалификаторы обрабатываются как false, если они присутствуют, но не имеют явного значения true.

Требования

Требование Значение
Минимальная версия клиента
Windows Vista
Минимальная версия сервера
Windows Server 2008

См. также раздел

Пространство имен pragma

Компиляция MOF-файлов

Компиляция локализованных MOF-файлов

Регистрация поставщика

IMOFCompiler::CompileFile