Um .mof
é um arquivo de entrada para o utilitário mofcomp
que está presente em todos os sistemas Windows. Você só precisa fornecer o nome do arquivo e o namespace correspondente como parâmetros para fazê-lo funcionar.
O nome do arquivo é obviamente a parte fácil - isso é algo que você especifica ao exportar o filtro WMI. Mas mofcomp
não executaria a .mof
export sem o namespace correto, pois não sabe onde encontrar a classe MSFT_SomFilter que está sendo instanciada:
C:\Users\john>mofcomp wmi-filter-export.mof
Microsoft (R) MOF Compiler Version 10.0.14393.0
Copyright (c) Microsoft Corp. 1997-2006. All rights reserved.
Parsing MOF file: wmi-filter-export.mof
MOF file has been successfully parsed
Storing data in the repository...
An error occurred while resolving the alias for object 1 defined on lines 2 - 18:
0X80041002 Class, instance, or property 'MSFT_SomFilter' was not found.
Compiler returned error 0x80041002
Basta pesquisar na rede o nome da classe MSFT_SomFilter
para obter o link da documentação da classe no MSDN , que convenientemente afirma:
| Namespace | Root\policy |
Portanto, chame mofcomp
com o namespace apropriado e veja o trabalho. Você provavelmente precisará executar isso no seu controlador de domínio com direitos administrativos (ou seja, elevados).
C:\Users\john>mofcomp -N:root\Policy wmi-filter-export.mof
Microsoft (R) MOF Compiler Version 10.0.14393.0
Copyright (c) Microsoft Corp. 1997-2006. All rights reserved.
Parsing MOF file: wmi-filter-export.mof
MOF file has been successfully parsed
Storing data in the repository...
WARNING: File wmi-filter-export.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.
Done!
Observe que, se um Filtro WMI com o mesmo GUID que o definido pela linha ID = <GUID>
, o .mof
já existir, ele será sobrescrito. Se o GUID ainda não estiver em uso, um novo filtro WMI será criado.
O aviso #PRAGMA AUTORECOVER
não tem substância real aqui - nenhuma nova classe está sendo definida pelo .mof
, portanto, nada é perdido no caso de uma reconstrução do repositório do WMI.