はじめに
まあまあな頻度で WmiPrvSE.exe の CPU 使用率が高騰するという相談を受けます。インターネット上の情報などを参照していると、WmiPrvSE.exe をタスクキルするなどの方法で、暫定的に対応している方をちらほら散見しますが、再起動等で再度事象が発生してしまうという声も多々見かけます。
現時点でいいサンプルがないため CPU が高騰する原因特定については記載できませんが、多くのパターンで発生している状況について簡潔に説明します。
WmiPrvSE.exe とは何者か
WmiPrvSE.exe (WMI プロバイダー ホスト) とは何者でしょうか。かなりざっくりですが、WMI クエリを実行する際に呼び出され、クエリの実行を中継してくれるようなプロセスと考えてもらえれば想像しやすいと思います。
WMI とは Windows Management Instrumentation と呼ばれる仕組みで、Windows OS の様々な管理に使用されます。
このため、WMI クエリは OS 稼働中は常に実行されているような状況ですが、そのほかの利用用途として監視ソフトウェアなどでハードウェアやプロセスなどの情報を収集するために使われることが多いです。
WmiPrvSE.exe が起動する事象の多くのパターン
上記の通り監視ソフトウェア等で利用される場合が多くありますが、WmiPrvSE.exe の CPU が高騰するよくあるパターンとして、監視ソフトウェア等のプロセスから監視処理のために多くの WMI クエリが発行されるという状況があります。このため、WmiPrvSE.exe 自体がおかしいというより、WMI クエリを大量発行しているプロセスがいるために事象が起きている場合が多くあり、対応としては WMI クエリを発行している元プロセスを止める、もしくは WMI クエリの発行数を減らすため問題となる監視処理等の間隔を長くする、監視項目を減らすなどの対応が必要となります。
調査の方法
WmiPrvSE.exe が高騰している原因を調査する場合、WmiPrvSE.exe 以外の怪しいプロセスを止めて事象が解消するかという切り分けが重要になります。情報を取得して調査するのであれば、Windows Performance Recorder という情報をとって Windows Performance Analyzer というツールを使い分析を行うことで、被疑対象が絞り込める可能性もあります。
ただし、WMI は複雑なため、Windows Performance Recorder を取得しても原因がわかりにくい場合があるため、様々な情報から多角的に分析し被疑対象を絞り込む必要があります。
WmiPrvSE.exe の CPU 高騰でお困りの方へ
サンプルが用意できないので、この記事では Windows Performance Recorder で被疑対象を絞り込める簡単なパターンの解説まで記載できませんが、前述の原因で CPU が高騰している場合、WmiPrvSE.exe 以外のプロセスで監視処理や問題の報告を行うようなものがあれば、プロセスの停止を行って事象に変化があるか切り分けを行うことが有用だと思います。WmiPrvSE.exe を停止するだけでは恒久的な対応にならない可能性があるため、ぜひ稼働しているプロセスの中から怪しいものがないかご確認いただけますと幸いです。