本文面向两种用户,普通小白和windows开发程序员。
对于小白,目标就是阻止wmi对资源的高占用。解决方法有以下几步:
查出谁在调用这个wmiprvse.exe
win+R 组合键打开运行,输入命令services.msc,回车或确认。

2. 找到如下蓝色背景的Windows Management Instrumentation。

3. 双击打开属性弹窗,点击依存关系。下发的”以下系统组件依赖此服务“显示的就是哪些服务会触发wmiprvse.exe的运行。比如Dell Data Vault Collector,我们再回到服务去找这个。

4. 留意服务的状态是运行中的,像我主机,这个服务就在运行。双击打开属性弹窗。留意下可执行文件路径,到该路径下看下是否是自己安装的,最好卸载的方式去除这个服务。


点击停止的话,可能重启会再次启动,所以把启动类型这里设为禁用。

以上对于小白的一种解决方式,当然若是系统不通过服务的方式调用wmi则上述步骤不起作用,需要高阶排查。
对于程序员等兴趣爱好者:
查看wmi的日志,定位到底是谁在密集调用这个服务。控制台执行WMIMon.exe > c:/wmilog.txt 。注意需要观察wmiprvse.exe的cpu占用高的时候开启,或者至少日志包含CPU高的部分。

2. Ctrl+C关闭刚刚的命令。日志量可能很大,我这里采用的方法是频率,看哪个进程调用频次高。notepad++打开C盘下的wmilog.txt文件。按照进程_ClientProcessId进行搜索,观察次数。如下图,总共1480次客户端调用,光这个就占了640次。那我们就分析这个进程,进程id=5412。


3. 如下图,就把某绒揪出来了,当然这个可能是误伤,先卸载后再观察。如果好了就罢了。如果不好,再分析其他进程id。(此处蛐蛐几句,搞安全的就是细致,把命令行都隐藏了,也不知道有意无意的~)

至此,作为开发者比较精细的处理了wmiprvse占用高。那是否会有疑问这个东西是干啥的,为啥这么多程序服务依赖这个。
wmiprvse.exe 分析深入篇
此节适合对windows系统有深入兴趣的读者。
首先了解下:WMI(Windows Management Instrumentation)是Windows系统管理的核心技术,用于管理和监控系统资源、硬件、软件和服务。说白了,我们要查询下cpu的负载、内存的余量、磁盘信息等均可以通过此组件。wmi支持的全部如下。

那么导致这个进程CPU占用高的原因是啥?是查询性能频繁还是微软的这个组件本身有问题。实际上2者都存在。以下是微软自win7关于这个组件的问题。
在 Windows 7 或 Windows Server 2008 R2 中的 Wmiprvse.exe 过程中出现内存泄漏 - Microsoft 支持
下图是msdn上对wmi的架构介绍,我们分层看,第三层,是客户端层或者叫请求层,非官方写的程序都属于这一层。通过COM接口的方式调用WMI的服务。第2层,wmi管理了一个仓库,就是一个数据库,存储这些采集数据。第1层,是和系统相关调用,win7、10、11、server可能有差异,就在最低的第1层做了兼容。可理解为微软自己的全家桶很大,做了一层适配。开发一次wmi的代码,在微软的各个产品均可正常执行。

从wmi使用的方式也可看出,和sql语句很像。微软称为WQL 即 WMI Query Language。
对于个人电脑来说wmi使用最多的也就是性能采集,支持脚本的方式对于云服务厂商处理批量主机会方便很多。下面结合我最近遇到的现场wmiprvse.exe占用高的问题,做个深入分析。
太多了,放到这篇文章了。
WmiPrvse.exe 耗费CPU在干啥 - YBT的文章 - 知乎
相关文章
100个b2b免费推广的网站平台,2025年B2B信息发布平台大全2025-05-21
博清生物科技(南京)有限公司:引领行业未来,科研仪器领域全链条解决方案服务商2025-06-11
2025年推荐20个免费小游戏网站,在线玩免费小游戏网站2025-05-20
吉林荣舰电力工程有限公司:点亮电力新未来,荣舰工程伴您行2025-05-17
合肥企业400电话办理:客户为什么更愿意拨打400电话2025-06-02
列举20免费建站的平台网站,助力企业快速进入互联网2025-06-16
100个免费B2B网站,让企业低成本做好产品推广,企业快速走向世界2025-06-16
真正免费建站网站,构站网2025-06-15
合肥微信小程序商城,开拓商业新航道2025-06-14
利用免费建站平台构站网,如何绑定自己的域名2025-06-14