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


mofcomp

управляемый формат объектов (MOF) компилятор анализирует файл, содержащий инструкции 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\SOFTWARE\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:<имя файла>

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

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

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

-WMI

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

-P:<пароль>

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

-U:<Имя пользователя>

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

-A:<центр>

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

-MOF:<пути>

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

-MFL:<пути>

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

-ПОПРАВКА:<локали>

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

Замечания

Компилятор 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, если они присутствуют, но не заданы явным образом.

Требования

Требование Ценность
Минимальный поддерживаемый клиент
Windows Vista
Минимальный поддерживаемый сервер
Windows Server 2008

См. также

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

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

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

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

IMOFCompiler::CompileFile