mofcomp

Der MOF-Compiler (Managed Object Format) analysiert eine Datei mit MOF-Anweisungen und fügt die in der Datei definierten Klassen und Klasseninstanzen dem WMI-Repository hinzu. MOF-Dateien werden in der Regel automatisch während der Installation der Systeme kompiliert, mit denen sie bereitgestellt werden, aber Sie können auch MOF-Dateien mit diesem Tool kompilieren.

Weitere Informationen zum Suchen und Verwenden von „mofcomp.exe“ finden Sie unter Verwenden von WMI-Verwaltungstools. Informationen zum Entfernen von Klassen und Instanzen aus dem WMI-Repository finden Sie in der Beschreibung des pragma deleteclass-Präprozessorbefehls.

Im folgenden Codebeispiel wird gezeigt, wie der MOF-Compiler für eine 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>

Switches

-autorecover

Fügt der Liste der Dateien, die während der Repositorywiederherstellung kompiliert wurden, die benannte MOF-Datei hinzu. Die Liste der MOF-Dateien für die automatische Wiederherstellung wird in diesem 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, keine MOF-Dateien wiederherstellen können, die sich auf einem Remotecomputer befinden.

Hinweis

Um sicherzustellen, dass bei einem Fehler und Neustart von WMI alle Ihre WMI-Klassendefinitionen für verwaltete Objekte im WMI-Repository wiederhergestellt werden, verwenden Sie die Präprozessoranweisung #pragma autorecover in Ihrer MOF-Datei (Managed Object Format).

-check

Fordert an, dass der Compiler nur eine Syntaxprüfung durchführt und entsprechende Fehlermeldungen ausgibt. Mit diesem Schalter kann kein anderer Schalter verwendet werden. Wenn dieser Schalter 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 als namespacepath angegebenen Namespace lädt. Das kompilierte MOF wird in den Mofcomp-Standardnamespace „root\\default“ geladen, es sei denn, dieser Schalter wird verwendet. Sie können auch den Präprozessorbefehl **\#pragma Namespace ("***Namespacepfad***")** in die MOF-Datei einfügen, um denselben Effekt zu erzielen. Wenn sowohl der Schalter **-N:** als auch der Befehl „\#pragma namespace“ verwendet wird, hat „\#**pragma namespace**“ Priorität gegenüber „**autorecover**“. In diesem Fall besteht die einzige Möglichkeit zum Kompilieren des MOF in einen 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 vornimmt. Wenn dieser Schalter verwendet wird, wird der Kompilierungsvorgang beendet, wenn eine in der MOF-Datei angegebene Klasse bereits vorhanden ist.

-class:forceupdate

Erzwingt Aktualisierungen von Klassen, wenn in Konflikt stehende untergeordnete Klassen vorhanden sind. Angenommen, ein Klassenqualifizierer ist in einer untergeordneten Klasse definiert, und die Basisklasse versucht, denselben Qualifizierer hinzuzufügen. Im Modus -class:forceupdate löst der MOF-Compiler diesen Konflikt, indem er den in Konflikt stehenden Qualifizierer in der untergeordneten Klasse löscht. Wenn die untergeordnete Klasse über Instanzen verfügt, tritt beim Update ein Fehler auf.

-class:safeupdate

Ermöglicht das Aktualisieren von Klassen, auch wenn untergeordnete Klassen vorhanden sind, sofern die Änderung keine Konflikte mit untergeordneten Klassen verursacht. Beispielsweise ermöglicht dieses Flag das Hinzufügen einer neuen Eigenschaft zur Basisklasse, die zuvor nicht in untergeordneten Klassen erwähnt wurde. Wenn die untergeordnete Klassen über Instanzen verfügen, tritt beim Update ein Fehler auf.

-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 vornimmt. Wenn dieser Schalter verwendet wird, wird der Kompilierungsvorgang beendet, wenn eine in der MOF-Datei angegebene Instanz bereits vorhanden ist.

-B:<filename>

Fordert an, dass der Compiler eine Binärversion der MOF-Datei mit dem Namen filename erstellt, ohne Änderungen am WMI-Repository vorzunehmen.

Wenn Sie die Option -B:<filename> verwenden, um eine binäre MOF-Datei zu erstellen, werden nur Varianten des Standardqualifizierers im WMI-Repository gespeichert.

Das binäre MOF-Format ist das Zwischenformat zum Kombinieren eines WDM-Treibers mit dem MOF als Ressource. Die binäre MOF-Datei stellt Klassen und Instanzen wie eine MOF-Textdatei dar und wird komprimiert, bevor sie auf dem Datenträger gespeichert wird.

-WMI

Fordert an, dass der Compiler eine WMI-Syntaxprüfung durchführt. Der Schalter -B: muss mit diesem Schalter verwendet werden. Der Schalter -WMI wird nur zum Erstellen binärer MOF-Dateien zur Verwendung durch WDM-Gerätetreiber verwendet. Dieser Schalter ruft eine separate binäre MOF-Dateiprüfung auf, die ausgeführt wird, nachdem die binäre MOF-Datei erstellt wurde.

-P:<Password>

Gibt Password als Kennwort an, das der Computerbenutzer bei der Anmeldung eingeben soll.

-U:<UserName>

Gibt UserName als Namen des Benutzers an, der sich anmeldet.

-A:<Authority>

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

-MOF:<path>

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

-MFL:<path>

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

-AMENDMENT:<Locale>

Teilt die MOF-Datei in sprachneutrale und -spezifische Versionen auf. Der MOF-Compiler erstellt eine sprachneutrale Form der MOF-Datei, in der alle geänderten Qualifizierer entfernt wurden. Eine lokalisierte Version der MOF-Datei wird auch mit einer MFL-Dateinamenerweiterung erstellt. Der Parameter Locale gibt den Namen des untergeordneten Namespace 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 0x409.

-ER <ResourceName>

Extrahiert binäres MOF aus einer benannten Ressource. Dieser Schalter ruft binäres MOF aus der Klasse im WMI-Repository ab, während der Schalter -B das binäre MOF-Format aus einer MOF-Datei erstellt.

-L:<ResourceLocale>

Optional. Extrahiert die lokalisierten MOF-Beschreibungen aus der binären MOF-Datei, wenn es mit dem Schalter -ER verwendet wird.

<MOFfile>

Name der zu analysierenden Datei.

Rückgabewerte

Als ersten Vorgang führt der MOF-Compiler eine Syntaxprüfung für die MOF-Datei durch. Wenn der Compiler Fehler findet, gibt er eine Fehlermeldung aus, 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. Grund hierfür ist entweder ein semantischer Fehler, z. B. Inkompatibilität mit dem vorhandenen WMI-Repository, oder ein tatsächlicher Fehler, z. B. ein Startfehler des WMI-Servers.

2

Mindestens ein Befehlszeilenschalter war ungültig.

3

Ein MOF-Syntaxfehler ist aufgetreten.

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

Wenn die #pragma autorecover-Präprozessoranweisung nicht in der Datei enthalten ist, 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 Schalter zur automatischen Wiederherstellung 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 ein, um weitere Informationen zu erfahren.

Eine MOF-Datei, die den Unicode-Zeichensatz verwendet, enthält eine Signatur als die ersten beiden Bytes der Datei. Diese Signatur ist entweder U+FFFE oder U+FEFF, abhängig von der Bytereihenfolge der Datei.

Wenn beim 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, der Schalter -check 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 in seinen Zustand zurückzuversetzen, bevor der Compiler mit der Verarbeitung begonnen hat.

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

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows Vista
Unterstützte Mindestversion (Server)
Windows Server 2008

Weitere Informationen

pragma namespace

Kompilieren von MOF-Dateien

Kompilieren lokalisierter MOF-Dateien

Registrieren eines Anbieters

IMOFCompiler::CompileFile