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


mofcomp

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

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

В следующем примере кода показано, как запустить компилятор 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>

Коммутаторы

-Автосохранения

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

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

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

Примечание

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

-проверка

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

-N:<namespacepath>

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

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

-A:<Authority>

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

-MOF:<path>

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

-MFL:<path>

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

-AMENDMENT:<Locale>

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

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

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

Требования

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

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

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

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

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

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

IMOFCompiler::CompileFile