Il compilatore MOF (Managed Object Format) analizza un file contenente istruzioni MOF e aggiunge le classi e le istanze di classe definite nel file al repository WMI. I file MOF vengono in genere compilati automaticamente durante l'installazione dei sistemi con cui vengono forniti, ma è anche possibile compilare file MOF usando questo strumento.
Per altre informazioni sull'individuazione e sull'uso di mofcomp.exe, vedere Using WMI Management Tools.For more information about locating and using mofcomp.exe, see Using WMI Management Tools. Per informazioni sulla rimozione di classi e istanze dal repository WMI, vedere il comando pragma deleteclass preprocessor.
Nell'esempio di codice seguente viene illustrato come eseguire il compilatore MOF in un file.
Aggiunge il file MOF denominato all'elenco dei file compilati durante il ripristino del repository. L'elenco dei file MOF di salvataggio automatico viene archiviato nella chiave del Registro di sistema:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WBEM\CIMOM\
I file MOF elencati in questa voce del Registro di sistema devono risiedere nel computer locale perché i file MOF che usano il comando di salvataggio automatico non possono recuperare i file MOF presenti in un computer remoto.
Richiede che il compilatore esegua un controllo della sintassi solo e stampa i messaggi di errore appropriati. Nessun'altra opzione può essere utilizzata con questa opzione. Quando si utilizza questa opzione, non viene stabilita alcuna connessione a Strumentazione gestione Windows (WMI) e non vengono apportate modifiche al repository WMI.
-N:<namespacepath>
Richiede che il compilatore carichi il file MOF nello spazio dei nomi specificato come *namespacepath*. Il file MOF compilato viene caricato nello spazio dei nomi Mofcomp predefinito, root\\default, a meno che non venga usata questa opzione. È anche possibile inserire il comando del preprocessore **\#pragma spazio dei nomi ("/percorso spazio dei nomi**")** nel file MOF per ottenere lo stesso effetto. Se vengono usati sia l'opzione **-N:** che il comando dello spazio dei nomi \#pragma , \#**pragma namespace** **autorecover** assume la priorità. In questo caso, l'unico modo per compilare MOF in un altro spazio dei nomi consiste nel modificare il file MOF e modificare il comando \#**pragma namespace**. È possibile specificare un computer remoto usando \\\\nomecomputer\\root\\default.
-class:createonly
Richiede che il compilatore non apporta modifiche alle classi esistenti. Quando si usa questa opzione, l'operazione di compilazione termina se esiste già una classe specificata nel file MOF.
-class:forceupdate
Forza gli aggiornamenti delle classi quando esistono classi figlio in conflitto. Si supponga, ad esempio, che un qualificatore di classe sia definito in una classe figlio e che la classe di base tenti di aggiungere lo stesso qualificatore. In modalità -class:forceupdate , il compilatore MOF risolve questo conflitto eliminando il qualificatore in conflitto nella classe figlio. Se la classe figlio ha istanze, l'aggiornamento forzato ha esito negativo.
-class:safeupdate
Consente gli aggiornamenti delle classi anche se sono presenti classi figlio, purché la modifica non causi conflitti con le classi figlio. Ad esempio, questo flag consente di aggiungere una nuova proprietà alla classe base non menzionata in precedenza nelle classi figlio. Se le classi figlio hanno istanze, l'aggiornamento ha esito negativo.
-class:updateonly
Richiede che il compilatore non crei nuove classi. Quando si usa questa opzione, l'operazione di compilazione termina se non esiste una classe specificata nel file MOF.
-instance:updateonly
Richiede che il compilatore non crei nuove istanze. Quando si usa questa opzione, l'operazione di compilazione termina se non esiste un'istanza specificata nel file MOF.
-instance:createonly
Richiede che il compilatore non apporta modifiche alle istanze esistenti. Quando si usa questa opzione, l'operazione di compilazione termina se esiste già un'istanza specificata nel file MOF.
-B:<filename>
Richiede che il compilatore crei una versione binaria del file MOF con il nome file senza apportare modifiche al repository WMI.
Se si usa l'opzione -B:<filename> per creare un file MOF binario, solo le versioni predefinite del qualificatore vengono archiviate nel repository WMI.
Il formato MOF binario è il formato intermedio per la combinazione di un driver WDM con MOF come risorsa. Il file MOF binario rappresenta classi e istanze esattamente come un file MOF di testo e viene compresso prima che venga archiviato su disco.
-WMI
Richiede che il compilatore esegua un controllo della sintassi WMI. L'opzione -B: deve essere usata con questa opzione. L'opzione -WMI viene usata solo per la compilazione di file MOF binari per l'uso da parte dei driver di dispositivo WDM. Questa opzione richiama un controllo file MOF binario separato, che viene eseguito dopo la creazione del file MOF binario.
-P:<Password>
Specifica password come password per l'utente del computer da immettere durante l'accesso.
-U:<UserName>
Specifica UserName come nome dell'accesso utente.
-A:<Authority>
Specifica l'autorità come autorità (nome di dominio) da usare per l'accesso a WMI.
-MOF:<path>
Nome dell'output indipendente dalla lingua. Usato con l'opzione -AMENDMENT per specificare il nome del file MOF indipendente dalla lingua che verrà generato.
-MFL:<path>
Nome dell'output specifico della lingua. Usato con l'opzione -AMENDMENT per specificare il nome del file MOF specifico della lingua che verrà generato.
-AMENDMENT:<Locale>
Suddivide il file MOF in versioni indipendenti dal linguaggio e specifiche della lingua. Il compilatore MOF crea una forma indipendente dal linguaggio del file MOF con tutti i qualificatori modificati rimossi. Viene creata anche una versione localizzata del file MOF con un'estensione di file MFL. Il parametro Impostazioni locali specifica il nome dello spazio dei nomi figlio che contiene le definizioni di classe localizzate. Il formato del parametro Locale è MS_xxx dove xxx è il valore esadecimale dell'LCID di Windows. Ad esempio, le impostazioni locali per l'inglese americano sono MS_409.
-ER <ResourceName>
Estrae MOF binario da una risorsa denominata. Questa opzione ottiene il file MOF binario dalla classe nel repository WMI mentre l'opzione -B crea il formato MOF binario da un file MOF.
-L:<ResourceLocale>
Facoltativa. Estrae le descrizioni MOF localizzate dal file MOF binario quando viene usato con l'opzione -ER.
<
MOFfile>
Nome del file da analizzare.
Valori restituiti
Come prima operazione, il compilatore MOF esegue un controllo della sintassi nel file MOF. Se il compilatore rileva errori, visualizza un messaggio di errore e il processo termina.
Il compilatore MOF può restituire i valori seguenti:
0
Operazione di compilazione MOF completata.
1
Il compilatore MOF non è riuscito a connettersi al server WMI. Ciò è dovuto a un errore semantico, ad esempio un'incompatibilità con il repository WMI esistente o un errore effettivo, ad esempio l'errore del server WMI per l'avvio.
2
Una o più opzioni della riga di comando non sono valide.
3
Si è verificato un errore di sintassi MOF.
Se il file MOF viene analizzato correttamente, ma viene effettuato un tentativo di eseguire un'operazione non consentita da un'opzione della riga di comando, il compilatore restituisce un codice di errore generato da WMI anziché da uno dei codici restituiti elencati nell'elenco precedente. Ad esempio, viene restituito un codice di errore WMI quando viene specificata l'opzione -instance:updateonly e il file MOF tenta di creare un'istanza.
Se l'istruzione del preprocessore di salvataggio automatico #pragma non è presente nel file, viene restituito l'avviso seguente:
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.
Commenti
Il compilatore MOF è disponibile nella directory %Windir%\System32\wbem. È necessario specificare il file MOF come parametro del compilatore MOF. È anche possibile specificare un'opzione di salvataggio automatico se si desidera che il file MOF venga ricompilato automaticamente se il repository CIM deve essere ripristinato automaticamente. Per altre informazioni, digitare Mofcomp /? al prompt dei comandi.
Un file MOF che usa il set di caratteri Unicode contiene una firma come primi due byte del file. Questa firma è U+FFFE o U+FEFF, a seconda dell'ordinamento dei byte del file.
Quando non si verificano errori nel processo di analisi, il compilatore MOF si connette al server WMI in esecuzione nel computer locale, a meno che non venga specificata l'opzione -check . Le classi e le istanze definite nel file MOF vengono aggiunte al repository WMI.
Quando si verifica un errore nell'aggiornamento del repository WMI, il compilatore non tenta di restituire il repository allo stato prima che il compilatore abbia iniziato l'elaborazione.
Windows 8: quando si installa un provider, mofcomp considera i qualificatori [Key] e [Static] come true, indipendentemente dai valori effettivi. Altri qualificatori vengono considerati false se sono presenti ma non impostati in modo esplicito su true.
Questo modulo spiega come usare CIM e WMI per apportare modifiche tramite metodi. I metodi disponibili variano a seconda del tipo di oggetto. L'individuazione e la comprensione di questi metodi è un passaggio importante per l'esecuzione di query e la modifica delle informazioni del repository.