Windowsエラー
 Computer >> コンピューター >  >> トラブルシューティング >> Windowsエラー

Service Host:診断ポリシー サービスのCPU使用率が高い問題を解決する5つの方法

Windowsが快適に動作している裏側では、数多くのバックグラウンドプロセスやサービスが稼働しています。これらのほとんどは、CPUやメモリのごくわずかなリソースしか消費しないように設計されています。しかし、何らかの不具合でプロセスが異常動作を起こすと、必要以上にリソースを占有し、前面で動作するアプリケーションに十分なリソースを回せなくなることがあります。その代表例のひとつが「診断ポリシー サービス(Diagnostic Policy Service)」です。

診断ポリシー サービスは、Svchost.exe(Service Host)が共有するプロセスのひとつで、Windowsの各コンポーネントの問題を検出し、トラブルシューティングを実行する役割を担っています。検出された問題は可能な範囲で自動的に修復され、修復できない場合は診断情報がログとして記録されます。シームレスなユーザー体験にとって重要な機能であるため、PCの起動時に自動的に開始され、バックグラウンドで常時アクティブになるよう設定されています。

CPU使用率が異常に高くなる正確な原因は特定されていませんが、考えられる要因としては、サービスインスタンスの破損、システムファイルの破損、ウイルスやマルウェアへの感染、肥大化したイベントログファイルなどが挙げられます。

本記事では、診断ポリシー サービスによるCPU消費を正常な状態へ戻すための5つの方法を、手順を追って詳しく解説します。

Service Host:診断ポリシー サービスのCPU使用率が高い問題を解決する5つの方法

Service Host:診断ポリシー サービスの高CPU使用率を修正する方法

診断ポリシー サービスの高CPU使用率に対する主な解決策

多くの場合、サービスを再起動するだけで異常なリソース消費は解消します。それでも改善しない場合は、SFCやDISMスキャンでシステムファイルの破損を確認したり、内蔵のパフォーマンス トラブルシューティング ツールを実行してみてください。また、Windowsを最新版に更新することや、イベントビューアーのログを削除することも有効です。

最終手段として、診断ポリシー サービス自体を無効化する方法もあります。ただし、無効化するとWindowsは自動的な問題診断やエラー修復を行わなくなる点に注意してください。

方法1:タスクマネージャーからプロセスを終了する

プロセスが破損した状態になると、通常より多くのシステムリソースを消費することがあります。この場合は、該当プロセス(ここでは診断ポリシー サービス)を手動で終了させ、自動的に再起動させてみましょう。操作はすべてWindowsのタスクマネージャーから行えます。

1. スタートボタンを右クリックし、「タスク マネージャー」を選択します。

Service Host:診断ポリシー サービスのCPU使用率が高い問題を解決する5つの方法

2.「詳細表示」をクリックしてタスクマネージャーを展開し、現在アクティブなすべてのプロセスとサービスを確認します。

Service Host:診断ポリシー サービスのCPU使用率が高い問題を解決する5つの方法

3.Windowsプロセスの中から「Service Host:診断ポリシー サービス」を探し、右クリックして「タスクの終了」を選択します。(左クリックでサービスを選択したうえで、右下の「タスクの終了」ボタンをクリックしても構いません。)

Service Host:診断ポリシー サービスのCPU使用率が高い問題を解決する5つの方法

診断ポリシー サービスは自動的に再起動します。もし再起動しない場合は、パソコンを一度再起動し、問題が解消したかどうかを確認してください。

方法2:SFCおよびDISMスキャンを実行する

最近実施したWindowsアップデートやウイルス攻撃によって、一部のシステムファイルが破損し、診断ポリシー サービスのCPU使用率が高くなっている可能性があります。幸い、Windowsには破損・欠落したシステムファイルをスキャンして修復するための組み込みユーティリティが用意されています。

ひとつ目は「システム ファイル チェッカー(SFC)」です。名前のとおり、すべてのシステムファイルの整合性をチェックし、壊れたファイルをキャッシュされた正常なコピーと置き換えます。SFCスキャンで修復できなかった場合は、コマンドラインツール「DISM(Deployment Image Servicing and Management)」を併用しましょう。

1.Windowsの検索バーに「コマンド プロンプト」と入力し、検索結果が表示されたら右側のパネルにある「管理者として実行」をクリックします。

Service Host:診断ポリシー サービスのCPU使用率が高い問題を解決する5つの方法

2.コマンド プロンプト ウィンドウに「sfc /scannow」と入力し、Enterキーを押して実行します。スキャンには時間がかかるため、検証プロセスが100%に達するまでウィンドウを閉じずにお待ちください。

Service Host:診断ポリシー サービスのCPU使用率が高い問題を解決する5つの方法

3.SFCスキャン完了後、以下のDISMコマンドを実行します。こちらもスキャンと復元プロセスが終わるまで辛抱強く待ち、完了後にパソコンを再起動してください。

DISM /Online /Cleanup-Image /RestoreHealth

Service Host:診断ポリシー サービスのCPU使用率が高い問題を解決する5つの方法

方法3:Windowsを更新し、パフォーマンスのトラブルシューティング ツールを実行する

先述のとおり、直近のWindowsアップデートが原因で診断ポリシー サービスが異常動作しているケースもあります。以前の更新プログラムにロールバックするか、Microsoftが不具合を修正する新しい更新を公開していないか確認しましょう。Windowsの更新中に問題が発生する場合は、内蔵の更新プログラムのトラブルシューティング ツールを実行してください。

さらに、Windowsの更新とは別に、システム パフォーマンスのトラブルシューティング ツールを実行し、パフォーマンス関連の問題を自動的に検出・修復させるのもおすすめです。

1.Windowsキー + Iを同時に押して「設定」を開き、「更新とセキュリティ」をクリックします。

Service Host:診断ポリシー サービスのCPU使用率が高い問題を解決する5つの方法

2.[Windows Update]タブで「更新プログラムのチェック」をクリックします。利用可能な更新プログラムの検索が始まり、見つかり次第自動的にダウンロードされます。新しい更新のインストール後は、パソコンを再起動してください。

Service Host:診断ポリシー サービスのCPU使用率が高い問題を解決する5つの方法

3.診断ポリシー サービスが依然としてリソースを大量消費している場合は、「更新プログラムのトラブルシューティング ツール」を実行します。再度「更新とセキュリティ」の設定を開き、「トラブルシューティング」タブに移動して「追加のトラブルシューティング ツール」をクリックします。

Service Host:診断ポリシー サービスのCPU使用率が高い問題を解決する5つの方法

4.[起動できないとき]セクションの「Windows Update」をクリックしてオプションを表示し、「トラブルシューティング ツールの実行」ボタンを押します。画面の指示に従ってトラブルシューティングを進めてください。

システム パフォーマンスのトラブルシューティング ツールを実行する手順:

1.スタートの「検索バー」に「コントロール パネル」と入力し、Enterキーを押して開きます。

Service Host:診断ポリシー サービスのCPU使用率が高い問題を解決する5つの方法

2.「トラブルシューティング」をクリックします。

Service Host:診断ポリシー サービスのCPU使用率が高い問題を解決する5つの方法

3.[システムとセキュリティ]の項目にある「メンテナンス タスクの実行」というリンクをクリックします。

Service Host:診断ポリシー サービスのCPU使用率が高い問題を解決する5つの方法

4.次のウィンドウで「詳細」をクリックし、「自動的に修復する」にチェックを入れます。「次へ」をクリックすると、トラブルシューティング ツールが実行されます。

Service Host:診断ポリシー サービスのCPU使用率が高い問題を解決する5つの方法

方法4:イベント ビューアーのログをクリアする

イベント ビューアーは、アプリケーションやシステムのエラーメッセージ、警告などを記録するプログラムです。これらのイベントログが蓄積して大きなサイズになると、Service Hostプロセスに問題を引き起こすことがあります。ログを削除するだけで、診断ポリシー サービスの不具合が解消されるケースがあります。将来的なトラブルを避けるためにも、イベントログは定期的にクリアすることをおすすめします。

1.Windowsキー + Rを押して「ファイル名を指定して実行」を開き、「eventvwr.msc」と入力して「OK」をクリックし、イベント ビューアーを起動します。

Service Host:診断ポリシー サービスのCPU使用率が高い問題を解決する5つの方法

2.左側のペインで小さな矢印をクリックして「Windows ログ」フォルダーを展開し、一覧から「Application」を選択します。

Service Host:診断ポリシー サービスのCPU使用率が高い問題を解決する5つの方法

3.まず右側のペインで「すべてのイベントを名前を付けて保存…」をクリックして現在のイベントログを保存します(既定では.evtx形式で保存されるため、.txtまたは.csv形式でもうひとつコピーを保存しておきましょう)。保存後、「ログのクリア…」を選択し、表示されるポップアップで「クリア」を再度クリックします。

Service Host:診断ポリシー サービスのCPU使用率が高い問題を解決する5つの方法

4.同じ手順を「Security」「Setup」「System」についても繰り返します。すべてのイベントログをクリアしたら、パソコンを再起動してください。

方法5:診断ポリシー サービスを無効化し、SRUDB.datファイルを削除する

上記のどの方法でも問題が解決しない場合は、診断ポリシー サービス自体を無効化するという選択肢があります。無効化の方法は複数ありますが、最も簡単なのは「サービス」アプリケーションから行う方法です。あわせて、SRUDB.datファイルも削除しましょう。このファイルには、アプリごとのバッテリー使用状況、ハードディスクへの読み書きバイト数、診断情報など、さまざまなデータが保存されています。診断ポリシー サービスが数秒おきにこのファイルを作成・更新するため、ディスク使用率が高くなる原因となります。

1.「ファイル名を指定して実行」に「services.msc」と入力して「OK」をクリックし、「サービス」アプリケーションを開きます。

Service Host:診断ポリシー サービスのCPU使用率が高い問題を解決する5つの方法

2.サービスがアルファベット順に並んでいることを確認し([名前]列のヘッダーをクリックすると並べ替えできます)、「Diagnostic Policy Service」を探して右クリックし、「プロパティ」を選択します。

Service Host:診断ポリシー サービスのCPU使用率が高い問題を解決する5つの方法

3.[全般]タブで「停止」ボタンをクリックし、サービスを終了します。

4.「スタートアップの種類」ドロップダウン メニューを展開し、「無効」を選択します。

Service Host:診断ポリシー サービスのCPU使用率が高い問題を解決する5つの方法

5.「適用」ボタンをクリックして変更を保存し、「OK」をクリックしてプロパティ ウィンドウを閉じます。

Service Host:診断ポリシー サービスのCPU使用率が高い問題を解決する5つの方法

6.次に、デスクトップの「エクスプローラー」アイコンをダブルクリックして開き、以下のアドレスへ移動します。

C:\WINDOWS\System32\sru

7.「SRUDB.dat」ファイルを見つけ、右クリックして「削除」を選択します。表示されたポップアップがあれば確認して進めてください。

Service Host:診断ポリシー サービスのCPU使用率が高い問題を解決する5つの方法

「サービス」アプリケーションから無効化できなかった場合は以下の別の方法を試してください。

1.システム構成から無効化する:[システム構成]を開き、[サービス]タブで診断ポリシー サービスのチェックを外します

Service Host:診断ポリシー サービスのCPU使用率が高い問題を解決する5つの方法

2.レジストリ エディターから無効化する:レジストリ エディターを開き、以下の場所へ移動します。

Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DPS

3.右側のペインにある「Start」をダブルクリックし、値のデータを「4」に変更します。

Service Host:診断ポリシー サービスのCPU使用率が高い問題を解決する5つの方法

4.パソコンを再起動すると、Windowsが自動的にSRUDB.datファイルを再作成します。診断ポリシー サービスは今後アクティブにならず、パフォーマンス問題を引き起こすこともなくなります。

関連記事:

  • Service Host:ローカル システム(svchost.exe)のCPU・ディスク使用率が高い場合の対処法
  • Service Host:ローカル システムによるCPU使用率高騰の修正方法
  • CMDを使って破損したハードドライブを修復する方法
  • Windows Audio Device Graph IsolationのCPU使用率が高い場合の対処法

このガイドが役に立ち、Windows 10パソコン上のService Host:診断ポリシー サービスによる高CPU使用率の問題を解決できたことを願っています。将来の再発を防ぐためには、すべてのデバイスドライバーを最新の状態に保ち、定期的にウイルス スキャンを実行することをおすすめします。また、役目を終えて不要になったサードパーティ製アプリケーションはアンインストールしておきましょう。診断ポリシー サービスに関するご質問やサポートが必要な場合は、下のコメント欄からお気軽にお問い合わせください。

  1. 【Windows 11】診断ポリシーサービスのCPU・メモリ使用率が高い問題を解決する6つの方法

    Windows、macOS、Linuxなど、どのOSを使用していても、バックグラウンドでは常に多数のプロセスやサービスが動作しています。私たちユーザーは、大量のCPUリソースやシステムリソースを消費するこれらの複雑なサービスの存在に気づいていないことがほとんどです。 その代表的なプロセスのひとつが「診断ポリシー(Diagnostic Policy)サービス」です。このサービスはWindowsの各コンポーネントに問題がないかを検出する役割を担っており、デバイスを再起動するたびに自動的に起動するよう設定されています。目的はマシンの使用体験を向上させ、エラーや不具合を最小限に抑えることです。Wind

  2. 【解決】Svchost.exe(サービスホスト)のCPU使用率が高い原因と直し方

    タスクマネージャーを開いたら、Svchost.exeがCPU使用率を大量に消費していた――そんな経験はありませんか?そもそも「サービスホスト(Service Host)」とは何なのか?と疑問に思う方も多いはずです。Svchost.exe(サービスホスト)は、Microsoftが提供するWindows OSの正規プロセスであり、Windowsの重要なサービスを動作させる上で欠かせない役割を担っています。最近では、タスクマネージャーを開くとSvchost.exeがCPUやRAMを90%以上も占有しているという報告が多く寄せられています。まず安心してほしいのは、この問題で困っているのはあなただけでは