WMI Provider Host占用高CPU的原因及处理

一、问题描述

在这里插入图片描述
某次,环境中一台windows主机cpu和内存异常高,任务管理器发现一个WMI服务异常占用cpu较高;WMI Provider Host (WMI 提供程序主机WmiPrvSE.exe) 是 WMI 的一部分,负责处理 WMI 请求并提供数据。Windows Management Instrumentation (WMI) 是 Windows 操作系统中的一个核心管理技术,它提供了一种标准化的方式来访问和管理系统资源。

在这里插入图片描述

WmiPrvSE.exe 是 Windows Management Instrumentation (WMI) 的一个组件,负责运行 WMI 提供程序。它是一个托管进程,用于处理来自本地或远程计算机的 WMI 请求,并返回所需的数据。WMI 是许多管理和监控工具的基础,包括系统自带的任务管理器、事件查看器以及第三方工具(如防病毒软件、系统优化工具等)。通过 WMI,管理员可以远程管理和监控多台计算机,提高管理效率。主要功能如下:

  • 数据收集:从操作系统和其他应用程序中收集各种系统信息,如硬件配置、软件状态、性能数据等。
  • 事件通知:监控系统事件,并在特定事件发生时生成通知。
  • 管理任务:执行各种管理任务,如启动和停止服务、更改系统设置等。

关联资源WMI 高 CPU 使用率问题

二、原因及处理

2.1、WMI Provider Host 高 CPU 占用的可能原因

1)WMI 查询过多

如果系统中有大量 WMI 查询请求,WmiPrvSE.exe 可能会消耗大量 CPU 资源来处理这些查询。如,某些应用程序或服务可能会频繁地调用 WMI 来获取系统信息,导致 CPU 使用率升高。

使用 WMI 控制台:命令提示符,输入 wmimgmt.msc 打开 WMI 控制台或cmd输入wbemtest,默认命名空间:root\cimv2,直接点连接,连接到 WMI 命名空间,然后点【查询】:SELECT * FROM Win32_Process;查看当前的 WMI 查询。如果发现有大量不必要的 WMI 查询,可以通过禁用相关服务或修改应用程序配置来减少查询数量。
在这里插入图片描述
在这里插入图片描述
或powershell:

Get-CimInstance -Query "SELECT * FROM Win32_Process" | Select-Object Name, ProcessId
#查看所有可用的 WMI 类
Get-WmiObject -List | Sort-Object Name | Select-Object Name
#查询特定 WMI 类
Get-WmiObject -Class Win32_Service | Where-Object { $_.State -eq "Running" }

或应用程序和服务日志 > Microsoft > Windows > WMI-Activity > Operational,查看 ClientProcessId 和查询内容,在错误日志的ClientProcessId字段中,你可以查看到引起问题的进程PID。
在这里插入图片描述
在这里插入图片描述

注:技术上来说,“Windows Management Instrumentation”服务是可以禁用的,但可能会导致系统不稳定或软件无法正常运行,因它是Windows操作系统的一个重要组成部分,负责为其他应用程序提供系统信息。当WMI Provider Host占用高CPU时,通常是由其他调用WMI的程序引起的。你可以通过重启WMI服务、查看事件查看器以及优化或卸载相关程序来解决这个问题。

2)WMI 库损坏

WMI 库文件(如 C:\Windows\System32\wbem\Repository 目录下的文件)可能因为磁盘错误、系统崩溃等原因而损坏。损坏的 WMI 库会导致 WmiPrvSE.exe 在处理请求时出现异常,从而占用大量 CPU 资源。

重建 WMI 库,停止 WMI 服务:打开命令提示符(以管理员身份),输入 net stop winmgmt 停止 WMI 服务。

备份并删除 WMI 库:备份 C:\Windows\System32\wbem\Repository 目录下的所有文件,然后删除该目录下的所有文件。

重新启动 WMI 服务:输入 net start winmgmt 重新启动 WMI 服务。或Services.msc重启“Windows Management Instrumentation”服务

验证修复:打开 WMI 控制台,检查 WMI 是否正常工作。

3)恶意软件或病毒

某些恶意软件或病毒可能会利用 WMI 进行攻击或传播,导致 WmiPrvSE.exe 异常活跃。这些恶意行为不仅会占用大量 CPU 资源,还可能对系统造成其他损害。wmiprvse.exe病毒通常会利用Windows Management Instrumentation的某些功能来实现其恶意目的,利用WMI来收集系统信息,或者执行某些未经授权的操作,甚至向外部服务器发送数据。感染wmiprvse.exe病毒的系统可能会出现如:系统性能明显下降,程序运行缓慢;频繁出现错误提示或崩溃;个人隐私数据可能被窃取并发送到远程服务器;甚至可能导致系统崩溃或无法正常运行。

使用软件查杀尝试;

4)系统更新或补丁

某些 Windows 更新或补丁可能会影响 WMI 的性能,导致 WmiPrvSE.exe 占用较高 CPU。例如,某些更新可能引入了新的 WMI 提供程序或修改了现有提供程序的行为。

5)第三方软件冲突

某些第三方软件(如安全软件、系统优化工具等)可能会与 WMI 发生冲突,导致 WmiPrvSE.exe 占用高 CPU。这些冲突可能是由于软件设计缺陷或兼容性问题引起的。尝试禁用或卸载可能导致wmi组件异常的软件,观察 WmiPrvSE.exe 的 CPU 占用情况是否有所改善。

打开性能监视器:在“运行”对话框中输入 perfmon 打开性能监视器。添加计数器:在性能监视器中添加 WmiPrvSE 相关的计数器,如 Process(WmiPrvSE)% Processor Time,实时监控 WmiPrvSE.exe 的 CPU 使用情况。
在这里插入图片描述
在 “添加计数器 ”窗口中,展开 “进程 ”并选择“ %处理器时间”。 选择与 CPU 使用率较高的 PID 匹配的 WmiPrvse# ,然后选择“添加>确定”。对于“ID 进程”计数器,最后、平均值、最小值和最大值都表示相应WmiPrvse.exe进程的 PID。 确定消耗大量 CPU 的确切实例后,可以通过按 Delete 从列表中删除 WmiPrvse# 实例的剩余实例。

分析日志:通过性能监视器的日志记录功能,记录一段时间内的性能数据,分析 WmiPrvSE.exe 的行为模式,找出问题根源。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

羌俊恩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值