2021年2月12日

Windows10 がスリープモードにならない


スリープモードに移行してくれなくなったときに試した方法をメモメモ…



先日購入したデスクトップ PC (Windows10) で「いくら待ってもスリープモードに移行しない」という問題が発生しました。再起動しても状況は変わらず。試しに「電源とスリープ」設定からディスプレイの電源を切る時間を1分、スリープ状態にする時間を2分という最短時間に設定してみたのですが、いくら待ってもスリープ状態になりません。

とりあえずググって出てきた方法を手当たり次第に試しまくった結果、無事に解決できたのでここに書き留めておきます。あくまでも自分が試したことのメモです。いずれの方法でも解決しない場合や、むしろ動作が不安定になる可能性もあるのでご注意ください。


電源オプションを確認する


まずは電源オプションからスリープ関連の項目をチェックしていきます。
タスクバーのスタートボタン(田)を右クリック→電源オプション→電源の追加設定→プラン設定の変更→詳細な電源設定の変更…と移動して電源オプションウィンドウを表示

  • スリープ→「次の時間が経過後スリープする」「次の時間が経過後休止状態にする」の項目が意図した時間になっているか確認
  • スリープ→「スリープ解除タイマーの許可」を「無効」あるいは「重要なスリープ解除タイマーのみ」に変更
  • マルチメディアの設定→「メディア共有時」を「コンピューターのスリープを許可する」に変更

結果:効果なし
なんとなく予想はしていましたが、残念ながらこれだけでは解決しませんでした。


Powercfg コマンドで原因を特定する


Powercfg コマンドを使うとシステムの電源管理(スリープや休止)に関する状態を表示したり設定を変更したりすることができます。
  1. コマンドプロンプトを開く
    スタートメニューを表示した状態で"cmd"とか"command"などと入力すればアプリメニューが表示されるので「管理者として実行」をクリック
  2. powercfg.exe /requestsと入力して実行する
  3. すべての項目が「なし」になっているか確認する
    プログラム名が表示されている場合、それが原因で電源制御の妨げになっている

結果:効果あり
コマンドを実行したところ MoUsoCoreWorker.exe(USO Worker) というアプリケーションがひっかかりました。どうやらこれが邪魔をしているようです。そこでググってみると次のページを発見。
帰ってきた徒然苔 MoUsoCoreWorkerがスリープを阻害する http://ttgcameback.blogspot.com/2020/11/mousocoreworker.html
まさに知りたかったドンピシャの情報です。さっそく記事に従って「サービス」アプリから該当のシステムを再起動してみると、無事スリープモードに移行するようになりました。問題解決!

2021年2月26日 追記

その後も何度か同じ現象に遭遇。毎回直接 MoUsoCoreWorker.exe を強制終了するのも嫌な感じがしたので、次の方法を試したところ、無事に解消しました。
  1. 設定→更新とセキュリティ→Windows Update→詳細オプションを開く
  2. 「更新の一時停止」の欄で適当な日付を選択
  3. しばらく(1分ほど)待つ
  4. 前の画面に戻って「更新の再開」ボタンをクリック
自分の環境では、これで MoUsoCoreWorker.exe がスリープを妨げることは(とりあえず)なくなりました。ただしこの方法だと強制的に更新プログラムのチェックが入るので、どうしてもWindowsを更新したくないという人はやめておきましょう。ちなみにこの方法はMicrosoftの公式フォーラムで紹介されていたものです。公式フォーラムの書き込みの数を見るかぎりやはり世界的に発生している不具合のようですね。はやく修正されないかな…



…と思いきや、ここで新たな問題が発生。確かにスリープモードには移行するのですが、長時間操作せずに放置した場合に消えていたはずのディスプレイの電源が勝手についてしまう(つまり無操作状態が解除されてしまう)ようになってしまいました。再びpowercfg.exe /requestsで確認してみても特に悪さをしていそうなプログラムは見当たらず…。何が原因で無操作状態が解除されているんでしょうか?


再起動する / 実行中のアプリケーションを閉じる


無操作状態が妨げられる原因としてまず考えられるのが、実行中のアプリケーションが邪魔をしているという可能性です。というわけでまずはブラウザやエクスプローラーを終了& PC を再起動して様子をみます。また、アンチウイルスソフト(ノートンなど)が裏で処理をしていたというのもよくあるパターンなので、こちらも一旦無効に。

結果:効果なし
無操作状態が解除されてしまう症状は改善しませんでした。再起動してもダメか…うむむ…


デバイスからの干渉を最小限にする


ゲーム用のコントローラなど、マウスキーボード以外に接続中のデバイスがあれば引っこ抜きます。ついでに各デバイスの電源管理の設定も確認しておきます。
  1. スタートボタン(田)の右クリックメニューからデバイスマネージャーを開く
  2. 対象のデバイス(マウスやネットワークアダプターなど)のプロパティ画面を開く
  3. 「電源の管理」タブ→「このデバイスで、コンピューターのスタンバイ状態を解除できるようにする。」のチェックをはずす

結果:効果なし
過去同じような問題が起きたときにXBOXコントローラを抜いただけで即解決したという経験があったので場合によっては有用な解決策だと思うのですが、残念ながら今回はハズレ。
ネット上では Wake On Lan を無効にすることで解決したという書き込みも割と見かけたのですが、自分の環境ではそもそもネットワークデバイスのプロパティに「電源の管理」タブがありませんでした(BIOS設定やドライバにもよる?)。というか今回はスリープ状態になる以前の問題なので、あまりこの設定は関係ないかも…


イベントビューアーで原因を特定する


イベントビューアーを使ってシステム内で実行されたイベントをチェックします。
  1. スタートボタン(田)の右クリックメニューからイベントビューアーを開く
  2. ログから原因となったイベントを探す
    ログを確認してディスプレイの電源がついた/スリープから復帰したと思われる時刻のイベントを調査する。「現在のログをフィルター」で時間などの条件指定も可能

結果:効果なし
該当時刻に C:\Windows\System32\services.exe によるログオンがあったもののそれ以上の詳しい内容はわからず…。スリープから復帰した場合には「システムは低電力状態から再開しました。」「システムがスリープ状態から再開されました。」などとログが残りますが、今回はそもそもスリープ状態になっていないのでログも残っていません。ダメだこりゃ。


その他の電源オプションを確認する


今度は最初に確認した電源オプションのその他の項目を順に変更してみることにしました。
タスクバーのスタートボタン(田)を右クリック→電源オプション→電源の追加設定→プラン設定の変更→詳細な電源設定の変更…と移動して電源オプションウィンドウを表示

  • ハードディスク→「次の時間が経過後ハードディスクの電源を切る」を「0(なし)」に設定

結果:効果あり

えっ?

…なんと、これだけであっさり解決してしまいました。ちゃんと設定した時間通りにディスプレイの電源が落ちスリープモードに移行しています。詳しい原因はわかりませんが、どうやらシステムがハードディスクの電源を切るタイミングで無操作状態が解除されていたみたいですね。上記の方法で設定変更してからは放っておけば普通にスリープするようになりました。

今回はハードディスクの省電力設定を無効化することで一応解決することができましたが、もしかしたらハードディスク側の APM (Advanced Power Management の略で一定時間アクセスがないときにヘッダを退避し休憩させておく省電力機能)とかち合っていたのかもしれません。APM 機能は CrystalDiskInfo などのソフトから無効にすることもできるので、もしこの機能が悪さをしていた場合は試してみる価値はある…かも。ストレージの省電力機能には Intel の LPM(Link Power Management) なんかもあるので仮にこれが原因だったら特定するのは難しいだろうなあと思います。

というわけで「電源オプション」の詳細な電源設定の各項目は(直接関係がないように見えても)ちゃんとチェックしたほうがいいということを学びました。

0 件のコメント:

コメントを投稿