近期遇到部分WINDOWS系统WMI异常,导致部分程序无法正常运行。本文记录此类现象及解决方法。
右键点击我的电脑选“管理”,进入计算机管理窗口,选中“服务和应用程序” - "WMI控件",如下图:
右键点击“WMI控件”,点“属性”,进入WMI控件属性窗口,正常的窗口是下面这样的:
但WMI出现问题时,该属性窗口是这样的:
出现这样的情况,说明本机的WMI环境被破坏,会影响到访问WMI的程序的正常运行。所以,我们通过下面的方法来修复。
1.用管理员权限打开命令行。
2.依次执行下面的脚本命令:
cd C:\Windows\System32\wbem
for /f %s in ('dir /b *.mof *.mfl') do mofcomp %s
for %i in (*.dll) do regSvr32 -s %i
net stop winmgmt /y
net start winmgmt
gpupdate /force
执行成功后,WMI就已经被修复了。
如果希望写成一个批处理文件,内容需要稍微改动一点,如下:
REM REPAIR WMI EXCEPTION
REM BY SW 2024.07.25
c:
cd C:\Windows\System32\wbem
for /f %%s in ('dir /b *.mof *.mfl') do mofcomp %%s
for %%i in (*.dll) do regSvr32 -s %%i
net stop winmgmt /y
net start winmgmt
gpupdate /force
区别就在于cmd命令行下变量用%s即可,但在bat文件中,就要改为%%s。
参考链接:
windows - WMI Invalid class but "WMI repository is consistent" - Stack Overflow
WMI: Missing or Failing WMI Providers or Invalid WMI Class - Microsoft Community Hub