Windowsパソコンの使用中、突然動作が重くなることはありませんか?
実はボクも少し前から、エクスプローラーがCPUを占有し、パソコンの動作が重くなる症状に悩まされておりました。
症状としては、YouTubeで動画を視聴しているだけでも、エクスプローラーのCPU使用率が50%を超え、全体のCPU使用率は100%近くまで跳ね上がるというものです。
ネットサーフィンなどはなんとかなるですが、負荷のかかる処理、とくにクリエイティブ系のソフトを使っているときにこの症状が発生すると、まったく仕事になりません。
試行錯誤の上、なんとか解決に至りましたので、同じような症状に悩まされている方の一助になればと思い、まとめることにしました。
当時の作業記録のメモをもとに、ボクが試した順に書いていくことにします。
- 対処1. Windows Search のレジストリを変更する
- 対処2. いくつかのサービスの「スタートアップの種類」を「無効」にする
- 対処3. 「ProcessExplorer」を導入する
- 対処4. 「sfc /scannow」と「DISM /Online /Cleanup-Image /RestoreHealth」を実行する
- 対処5. Cortana関連を無効にする
- 対処6. 不要な常駐ソフトをアンインストールする
- 対処7. BIOSをアップデート
- 対処8. 「Microsoft .NET Framework 修復ツール」を使用する
- 対処9. 使用していないソフトを削除する
- 対処10. 「chkdsk」 を実行する(とりあえず解決)
- 最後に
対処1. Windows Search のレジストリを変更する
一部から「レジストリをいじるのは怖い」という声が聞こえてきそうですが、ここで書いているような「レジストリエディタ」の操作は、実はエクスプローラーでフォルダを開いたりする操作と何ら変わらなかったりします。
昔はうっかりレジストリを削除してしまい、パソコンが起動しなくなるなんてこともあったようですが。(※Windows7以降はレジストリの削除ができなくなったようです)
それでも心配であれば、重要なデータをバックアップしてから作業しましょう。
では詳しく説明していきます。
「Winキー」+「Rキー」を同時に押して、「ファイル名を指定して実行」 を開きます。

つづいて「名前」 ボックスに「regedit」と入力して 「OK」 をクリック。

これで、レジストリエディターが開くので、下記の階層まで移動してください。
コンピューター\HKEY_LOCAL_MACHINE\SOFTWARE\MicrosoftWindows Search
次に「SetupCompletedSuccessfully」を開きます。

小さなウインドウが開くので「値のデータ」を「1」にして「OK」をクリック。

レジストリエディタを閉じて完了です。
対処2. いくつかのサービスの「スタートアップの種類」を「無効」にする
ここでは、Windowsのサービスを無効にする方法を紹介します。
サービスというのは、Windowsパソコンを使っているときに、バックグラウンド(目に見えないところ)で動いている機能と考えてください。
不要なものもあるので、今回はそれを無効にします。
では詳しく説明していきます。
エクスプローラーのアドレスバーから
コントロール パネル\システムとセキュリティ\管理ツール
の階層を開きます。
「サービス」 というショートカットがあるので、それを開いてください。

すると、ずらーっとよくわからない一覧が表示されると思います。
アルファベット順にならんでいるはずなので、次の3つのサービスを探してください。
- Diagnostic Policy Service
- Diagnostic Service Host
- Diagnostic System Host

見つけたら、それぞれをダブルクリックして開き、「スタートアップの種類」を「無効」にしましょう。

3つのサービスすべてを同じように無効にしたら完了です。
対処3. 「ProcessExplorer」を導入する
ボクの場合ここまで来てもまだ解決に至らなかったため、原因を細かく切り分けする必要があると考えました。
そこで導入したのが「ProcessExplorer」というソフトです。
これはWindowsに標準搭載されている「タスクマネージャー」を、より詳細にしたもの、と考えてください。
「ProcessExplorer」は下記からダウンロードできます。

「ProcessExplorer」については、また別の記事で書くことにします。
対処4. 「sfc /scannow」と「DISM /Online /Cleanup-Image /RestoreHealth」を実行する
実際に「ProcessExplorer」を使ってみたことで、より細かい原因がみえてきました。
どうもCPUを占有しているのは、エクスプローラーの中の「shcore.dll!SHOpenRegStream2W+0x790」と「ntdll.dll!LdrAccessResource+0x12c0」というもの。
これがどういうものなのかは正直よくわかっていませんが、これを検索ワードとしてGoogle検索してみると、海外のフォーラムやブログがヒットするようになりました。
そこで見つけた解決策が「sfc /scannow」と「DISM /Online /Cleanup-Image /RestoreHealth」というコマンドを実行するというものです。
詳しく説明していきます。
まずは「コマンドプロンプト」を管理者権限で起動します。
タスクバーの検索窓に「cmd」と入力。

「コマンドプロンプト」というソフトが表示されるので、右クリックして表示されるメニューから「管理者として実行」を選択します。

「コマンドプロンプト」が開くので、「sfc /scannow」と入力し、エンターを押します。
システムスキャンが開始されるので、終わるまでしばらく待ちます。

処理が終わったら続けて「DISM /Online /Cleanup-Image /RestoreHealth」と入力してエンター。
こちらも時間がかかりますので、終わるまで気長に待ってください。

処理が完了すると、下記のような表示になります。

この作業後、すぐにCPU使用率が下がる場合がありますが、しばらく様子を見ましょう。
ボクの場合は、10時間ほど経って再起動をしたところ、症状が再発するようになりました。
対処5. Cortana関連を無効にする
「sfc /scannow」が空振りに終わったので、別の原因を解決することにしました。
それは「shcore.dll!Ordinal172+0x380」というもの。これもCPUを占有している要因になっていました。
これについては、Windows10に搭載されている「Cortana」が悪さをしているようです。
「Cortana」はiPhoneでいうShiriみたいなものと考えてください。
ボクは全く使っていないので、無効にすることにしました。
詳しく説明していきます。
「Winキー」+「Rキー」を同時に押して、「ファイル名を指定して実行」 を開きます。つづいて「名前」 ボックスに「gpedit.msc」と入力して 「OK」 をクリック。

「ローカルグループポリシーエディター」が起動するので、「コンピューターの構成」→「管理用テンプレート」→「Windows コンポーネント」→「検索」と階層をたどります。

設定の一覧が開くので、下記の3つの設定を探してください。
- Cortanaを許可する
- ロック画面でCortanaを許可する
- 検索とCortanaによる位置情報の使用を許可する

見つけたら、それぞれをダブルクリックして開き、左上の項目を「無効」にして、「OK」をクリックします。

他の2つの設定も、同じように「無効」にしたら完了です。
対処6. 不要な常駐ソフトをアンインストールする
もしかしたら難しく考えすぎているのかもしれないと思い、常駐ソフトの見直しをしてみることにしました。
ボクの場合、常駐ソフトの中で不要だと思ったのが「Advanced SystemCare」というソフトだったので、こちらをアンインストールしてみました。
詳しく説明していきます。
左下のスタートボタンをクリックし、「設定」を選びます。

「アプリ」をクリックしてください。

インストールされているソフトの一覧が表示されるので、削除したい常駐ソフトをクリックします。
※画像は一例です

「アンインストール」をクリックすると、更に「アンインストール」ボタンが表示されるので、それをクリックしてください。


あとはアンインストールが完了するまで待つだけです。
※ソフトによっては追加操作が必要な場合がありますので、別途画面に従って操作してください
アンインストール後、一時的にCPU使用率が下がる場合がありますが、しばらく様子を見てみてください。
ボクの場合は、1ヶ月ほどで再び症状が発生するようになりました。汗
対処7. BIOSをアップデート
ここまで試行錯誤したところで、BIOSをアップデートすることにしました。
BIOSのファームウェアはアップデートすることで、PCのパフォーマンスが上がる場合もあるのですが、失敗するとパソコンが起動しなくなるなどのリスクが伴います。
不具合なくパソコンが使用できているなら、不用意に行うべきではありません。
ボクはASUS製のマザーボードを使用しているので、「EZアップデート」というツールを使ってアップデートを行いました。
これはWindowsを起動した状態でもBIOSのファームウェアを更新できるので、対応しているマザーボードを使用しているのであれば、おすすめです。
EZアップデートの使い方は下記公式サイトに詳しく書かれていますので、参考にしてみてください。
対処8. 「Microsoft .NET Framework 修復ツール」を使用する
エクスプローラーに関する直接的な解決策ではないのですが、「.NET Framework」のエラーでもCPU使用率があがるという情報があったので、こちらも試してみました。
修復ツールは下記のページからダウンロードできます。
詳しく説明していきます。
上記のページを開いたら、下にスクルールし「ダウンロード情報」にある「Microsoft .NET Framework 修復ツール」をクリックしてください。


ダウンロードが終わったら、ファイルをダブルクリックして開きます。

画面の説明に沿ってツールを操作していきます。
と言っても、以下のとおりボタンを押していくだけなのでとても簡単です。
1.チェックを入れて「Next」をクリック

2.ツールが動き出すので、終わるまで待ちます

3.「Changes complete」という表示が出たら「Next」を押します

4.ログの収集が始まるので、終わるまで待ちます

5.「Finish」を押してウインドウを閉じます

6.最後にパソコンを再起動して修復完了です
対処9. 使用していないソフトを削除する
インストールしているソフトが原因で、CPU使用率が上がることがあるようです。
使用していないソフトがいくつかあったので、削除してみました。
詳しく説明していきます。
左下のスタートボタンをクリックし、「設定」を選びます。

「アプリ」をクリックしてください。

インストールされているソフトの一覧が表示されるので、削除するソフトをクリックします。
※画像は一例です

「アンインストール」をクリックすると、更に「アンインストール」ボタンが表示されるので、それをクリックしてください。


あとはアンインストールが完了するまで待つだけです。
※ソフトによっては追加操作が必要な場合がありますので、別途画面に従って操作してください
対処10. 「chkdsk」 を実行する(とりあえず解決)
結論から言うと、こちらの方法が一番安定しました。
詳しく説明していきます。
「コマンドプロンプトを管理者権限で起動」し、

「chkdsk c: /f」を入力しエンター。

つづいて、次回起動時にチェックディスクを行うか聞かれるので、「y」と入力し、エンターを押してください。

「次回のシステム再起動時に~」と表示されたらコマンドプロンプトを閉じます。

パソコンを再起動。チェックディスクが開始されるので、終わるまでしばらく待ちます。

チェックディスクが終わると、自動的にパソコンが再起動するので、チェック結果を確認しましょう。
スタートボタンを右クリックし、メニューから「イベントビューア」を開いてください。

「Windowsログ」→「Application」と階層をたどり、ソース名が「Wininit」となっているものを選択してください。

全般タブに、チェックディスクの結果ログが表示されています。

確認が必要な箇所は、以下の通りです。
確認箇所1
** KB in bad sectors.
** KB in bad sectors. の「**」の数字が「0」であることを確認してください。

もし「**」の数字が1以上であれば、再度チェックディスクを行います。
その際のチェックディスクは、コマンドプロントを管理者権限で起動し「chkdsk c: /r」を入力して行なってください。不良セクタを修復することができます。
- このチェックディスクは時間がかかるので、時間に余裕のあるときに行うことをおすすめします。自分はお風呂に入る前にチェックを開始させるようにしていました。
- 不良セクタを修復するときは、一部のデータが消去される場合があるようです。念の為、対象のディスクに重要なデータがある場合はバックアップを取っておくことをおすすめします
確認箇所2
Stage 3: Examining security descriptors …
Cleaning up ** unused index entries from index $SII of file 0x9.
Cleaning up ** unused index entries from index $SDH of file 0x9.
Cleaning up ** unused security descriptors.
Cleaning up ** unused~ の「**」の数字が1桁、もしくは表示自体が無いことを確認してください。

もし「**」の数字が2桁以上ある場合は、最低でも1桁、もしくは表示が無くなるまでチェックディスクを繰り返します。
確認箇所3
Windows has scanned the file system and found no problems.
上記の表示があることを確認してください。
もし「Windows has made corrections to the file system.」という表示がある場合は、無くなるまでチェックディスクを繰り返します。

結果
一通りの作業を終えたところ、CPU使用率が安定したのですが、おおよそ24時間起動し続けていると、再びエクスプローラーがCPUを占有しはじめてしまいます。
ただその場合でも、再度「chkdsk c: /f」を行うことで、すぐ改善させることができるので、とりあえずはこれで適宜対応していくことにしました。
最後に
試行錯誤の結果、ようやく及第点にたどり着くことができました。
あくまでボクの環境における結果ではありますが、同じ症状に悩まされている方にもどれか1つは有効なものがあるかもしれません。
一度試してみてはいかがでしょうか。
コメント