Freigeben über


Mofcomp

Das Managed Object Format (MOF) Compiler analysiert eine Datei mit MOF-Anweisungen und fügt die klassen und Klasseninstanzen, die in der Datei definiert sind, dem WMI-Repository hinzu. MOF-Dateien werden in der Regel während der Installation der Systeme, mit denen sie bereitgestellt werden, automatisch kompiliert, aber Sie können MOF-Dateien auch mithilfe dieses Tools kompilieren.

Weitere Informationen zum Suchen und Verwenden von mofcomp.exefinden Sie unter Verwenden von WMI-Verwaltungstools. Informationen zum Entfernen von Klassen und Instanzen aus dem WMI-Repository finden Sie im pragma deleteclass Preprocessor-Befehl.

Das folgende Codebeispiel zeigt, wie der MOF-Compiler in einer Datei ausgeführt wird.

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>

Schalter

-autorecover

Fügt die benannte MOF-Datei zur Liste der Dateien hinzu, die während der Repositorywiederherstellung kompiliert wurden. Die Liste der autorecover MOF-Dateien wird im Registrierungsschlüssel gespeichert:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WBEM\CIMOM\

Die in diesem Registrierungseintrag aufgeführten MOF-Dateien müssen sich auf dem lokalen Computer befinden, da MOF-Dateien, die den Befehl autorecover verwenden, nicht wiederhergestellt werden können, die sich auf einem Remotecomputer befinden.

Anmerkung

Um sicherzustellen, dass alle WMI-Klassendefinitionen für verwaltete Objekte im WMI-Repository wiederhergestellt werden, wenn WMI einen Fehler aufweist und neu gestartet wird, verwenden Sie die #pragma autorecover Präprozessoranweisung in Ihrer MoF-Datei (Managed Object Format).

-check

Fordert an, dass der Compiler nur eine Syntaxüberprüfung durchführt und entsprechende Fehlermeldungen druckt. Mit diesem Schalter kann kein anderer Schalter verwendet werden. Wenn dieser Switch verwendet wird, wird keine Verbindung mit der Windows-Verwaltungsinstrumentation (Windows Management Instrumentation, WMI) hergestellt, und es werden keine Änderungen am WMI-Repository vorgenommen.

-N:<Namespacepath->

Fordert an, dass der Compiler die MOF-Datei in den Namespace lädt, der als *namespacepath* angegeben ist. Das kompilierte MOF wird in den Mofcomp-Standardnamespace "root\\default" geladen, es sei denn, dieser Switch wird verwendet. Sie können auch den Präprozessorbefehl **\#pragma Namespace ("***namespace path***")** in die MOF-Datei einfügen, um denselben Effekt zu erzielen. Wenn sowohl der Switch **-N:** als auch der \#Pragma-Namespace Befehl verwendet werden, hat \#**pragma namespace** **autorecover** Priorität. In diesem Fall besteht die einzige Möglichkeit zum Kompilieren des MOF in einem anderen Namespace darin, die MOF-Datei zu bearbeiten und den Befehl \#**pragma namespace** zu ändern. Ein Remotecomputer kann mit \\\\machinename\\root\\default angegeben werden.

-class:createonly

Fordert an, dass der Compiler keine Änderungen an vorhandenen Klassen vorgibt. Wenn dieser Schalter verwendet wird, wird der Kompilierungsvorgang beendet, wenn bereits eine in der MOF-Datei angegebene Klasse vorhanden ist.

-class:forceupdate

Erzwingt Aktualisierungen von Klassen, wenn konfliktende untergeordnete Klassen vorhanden sind. Angenommen, ein Klassenqualifizierer ist in einer untergeordneten Klasse definiert, und die Basisklasse versucht, denselben Qualifizierer hinzuzufügen. In -class:forceupdate Modus löst der MOF-Compiler diesen Konflikt durch Löschen des konfliktierenden Qualifizierers in der untergeordneten Klasse. Wenn die untergeordnete Klasse Instanzen aufweist, schlägt die erzwungene Aktualisierung fehl.

-class:safeupdate

Ermöglicht Aktualisierungen von Klassen, auch wenn untergeordnete Klassen vorhanden sind, solange die Änderung keine Konflikte mit untergeordneten Klassen verursacht. Dieses Flag ermöglicht beispielsweise das Hinzufügen einer neuen Eigenschaft zur Basisklasse, die zuvor in untergeordneten Klassen nicht erwähnt wurde. Wenn die untergeordneten Klassen Instanzen haben, schlägt das Update fehl.

-class:updateonly

Fordert an, dass der Compiler keine neuen Klassen erstellt. Wenn dieser Schalter verwendet wird, wird der Kompilierungsvorgang beendet, wenn eine in der MOF-Datei angegebene Klasse nicht vorhanden ist.

-instance:updateonly

Fordert an, dass der Compiler keine neuen Instanzen erstellt. Wenn dieser Schalter verwendet wird, wird der Kompilierungsvorgang beendet, wenn eine in der MOF-Datei angegebene Instanz nicht vorhanden ist.

-instance:createonly

Fordert an, dass der Compiler keine Änderungen an vorhandenen Instanzen vorgibt. Wenn dieser Schalter verwendet wird, wird der Kompilierungsvorgang beendet, wenn bereits eine in der MOF-Datei angegebene Instanz vorhanden ist.

-B:<Dateinamen>

Fordert an, dass der Compiler eine binäre Version der MOF-Datei mit dem Namen Dateinamen erstellt, ohne Änderungen am WMI-Repository vorzunehmen.

Wenn Sie die Option -B:<Dateinamen> Option zum Erstellen einer binären MOF-Datei verwenden, werden nur Standardqualifizierer-Aromen im WMI-Repository gespeichert.

Das binäre MOF-Format ist das Zwischenformat für die Kombination eines WDM-Treibers mit dem MOF als Ressource. Die binäre MOF stellt Klassen und Instanzen genauso wie eine TEXT-MOF-Datei dar und wird komprimiert, bevor sie auf dem Datenträger gespeichert wird.

-WMI-

Fordert an, dass der Compiler eine WMI-Syntaxüberprüfung durchführt. Der -B: Schalter muss mit diesem Schalter verwendet werden. Der -WMI- Switch wird nur zum Erstellen binärer MOF-Dateien für die Verwendung durch WDM-Gerätetreiber verwendet. Diese Option ruft eine separate binäre MOF-Dateiüberprüfung auf, die nach dem Erstellen der binären MOF-Datei ausgeführt wird.

-P:<Kennwort>

Gibt Kennwort als Kennwort für den Computerbenutzer an, der bei der Anmeldung eingegeben werden soll.

-U:<UserName->

Gibt UserName als Namen der Benutzeranmeldung an.

-A:<Authority>

Gibt Authority als Autorität (Domänenname) an, die beim Anmelden bei WMI verwendet werden soll.

-MOF:<Pfad>

Name der sprachneutralen Ausgabe. Wird mit dem -AMENDMENT wechseln, um den Namen der sprachneutralen MOF-Datei anzugeben, die generiert wird.

-MFL:<Pfad>

Name der sprachspezifischen Ausgabe. Wird mit dem -AMENDMENT wechseln, um den Namen der sprachspezifischen MOF-Datei anzugeben, die generiert wird.

-ÄNDERUNGSANTRAG:<Gebietsschema->

Teilt die MOF-Datei in sprachneutrale und -specific Versionen auf. Der MOF-Compiler erstellt eine sprachneutrale Form der MOF-Datei, die alle geänderten Qualifizierer entfernt hat. Eine lokalisierte Version der MOF-Datei wird auch mit einer MFL-Dateinamenerweiterung erstellt. Der parameter Locale gibt den Namen des untergeordneten Namespaces an, der die lokalisierten Klassendefinitionen enthält. Das Format des Locale-Parameters ist MS_xxx wobei xxx der Hexadezimalwert der Windows LCID ist. Beispielsweise ist das Gebietsschema für amerikanisches Englisch MS_409.

-ER <ResourceName->

Extrahiert binäre MOF aus einer benannten Ressource. Diese Option ruft die binäre MOF aus der Klasse im WMI-Repository ab, während der switch -B das binäre MOF-Format aus einer MOF-Datei erstellt.

-L:<ResourceLocale->

Wahlfrei. Extrahiert die lokalisierten MOF-Beschreibungen aus dem binären MOF bei Verwendung mit -ER Switch.

< MOFfile->

Der Name der zu analysierenden Datei.

Rückgabewerte

Als erster Vorgang führt der MOF-Compiler eine Syntaxprüfung für die MOF-Datei durch. Wenn der Compiler Fehler findet, wird eine Fehlermeldung ausgegeben, und der Prozess wird beendet.

Der MOF-Compiler kann die folgenden Werte zurückgeben:

0

Der MOF-Kompilierungsvorgang war erfolgreich.

1

Der MOF-Compiler konnte keine Verbindung mit dem WMI-Server herstellen. Dies liegt entweder an einem semantischen Fehler, z. B. einer Inkompatibilität mit dem vorhandenen WMI-Repository oder einem tatsächlichen Fehler wie dem Fehler des WMI-Servers zum Starten.

2

Mindestens eine Befehlszeilenoptionen waren ungültig.

3

Ein MOF-Syntaxfehler ist aufgetreten.

Wenn die MOF-Datei richtig analysiert wird, aber versucht wird, einen Vorgang auszuführen, der durch einen Befehlszeilenschalter verboten ist, gibt der Compiler einen Fehlercode zurück, der von WMI generiert wird, anstelle der in der vorherigen Liste aufgeführten Rückgabecodes. Beispielsweise wird ein WMI-Fehlercode zurückgegeben, wenn die -instance:updateonly Switch angegeben wird und die MOF-Datei versucht, eine Instanz zu erstellen.

Wenn sich die #pragma autorecover Präprozessor-Anweisung nicht in der Datei befindet, wird die folgende Warnung zurückgegeben:

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.

Bemerkungen

Der MOF-Compiler ist im Verzeichnis %Windir%\System32\wbem verfügbar. Sie müssen die MOF-Datei als Parameter des MOF-Compilers angeben. Sie können auch einen Autorecover-Switch angeben, wenn die MOF-Datei automatisch neu kompiliert werden soll, wenn das CIM-Repository jemals automatisch wiederhergestellt werden muss. Geben Sie Mofcomp /? an der Eingabeaufforderung.

Eine MOF-Datei, die den Unicode-Zeichensatz verwendet, enthält eine Signatur als die ersten beiden Bytes der Datei. Diese Signatur ist je nach Byte-Sortierung der Datei entweder U+FFFE oder U+FEFF.

Wenn im Analyseprozess keine Fehler auftreten, stellt der MOF-Compiler eine Verbindung mit dem WMI-Server her, der auf dem lokalen Computer ausgeführt wird, es sei denn, die -check Switch ist angegeben. Klassen und Instanzen, die in der MOF-Datei definiert sind, werden dem WMI-Repository hinzugefügt.

Wenn beim Aktualisieren des WMI-Repositorys ein Fehler auftritt, versucht der Compiler nicht, das Repository an seinen Zustand zurückzugeben, bevor der Compiler mit der Verarbeitung begonnen hat.

Windows 8: Bei der Installation eines Anbieters behandelt Mofcomp die Qualifizierer [Key] und [Static] als "true", wenn sie vorhanden sind, unabhängig von ihren tatsächlichen Werten. Andere Qualifizierer werden als "false" behandelt, wenn sie vorhanden, aber nicht explizit auf "true" festgelegt sind.

Anforderungen

Anforderung Wert
Mindestens unterstützter Client
Windows Vista
Mindestens unterstützter Server
Windows Server 2008

Siehe auch

pragma namespace

Kompilieren von MOF-Dateien

Kompilieren lokalisierter MOF-Dateien

Registrieren eines Anbieters

IMOFCompiler::CompileFile