作为更大的C#代码库的一部分,我一直在同一台计算机上运行以下查询(Windows XP SP2):
“从Win32_Processselect*”
直到今天,它一直在按预期工作。 现在,查询无限期挂起而不返回任何结果。 我试过在这台机器上查询其他几个WMI Provider类,他们按预期工作。
我重新启动机器,但没有帮助。 我检查了应用程序事件日志,其中WMI报告错误,但没有线索。 我还尝试了其他两种枚举Win32_Process实例的方法:VBscript和WMI CIM Studio。 两者都以相同的方式挂起。
我尝试运行由Microsoft提供的诊断脚本WMIDiag.vbs。 但是,在“validation执行之前加载的WMI提供程序”的步骤中,它会无限期地挂起。 文档确实说脚本可能需要长达6个小时才能运行,但是现在已经被占用了0%的CPU使用时间超过了12个小时。
我在这里不知所措 任何人都可以build议为什么一个单独的Win32_Process类可能会停止工作,而其余的WMI类的行为如往常一样? 我强烈希望专门解决这个问题,而不是甩手和擦拭机器。
如果有任何额外的系统信息是有用的,请让我知道。 我不知道接下来的故障排除过程。
WMI可能已经在该机器上损坏了。 尝试重新安装它。
将所有行复制到batch file中并运行它:
net stop winmgmt pause c: cd c:\windows\system32\wbem rd /S /Q repository regsvr32 /s %systemroot%\system32\scecli.dll regsvr32 /s %systemroot%\system32\userenv.dll mofcomp cimwin32.mof mofcomp cimwin32.mfl mofcomp rsop.mof mofcomp rsop.mfl for /f %%s in ('dir /b /s *.dll') do regsvr32 /s %%s for /f %%s in ('dir /b *.mof') do mofcomp %%s for /f %%s in ('dir /b *.mfl') do mofcomp %%s mofcomp exwmi.mof mofcomp -n:root\cimv2\applications\exchange wbemcons.mof mofcomp -n:root\cimv2\applications\exchange smtpcons.mof mofcomp exmgmt.mof