Windowsが突発的に自動スリープしない場合の要因とその解決策
Windows10が「電源とスリープ」の設定通りに動かない、ディスプレイが消えない、消えてもPCがスリープしない、設定時間と動作が異なっている、Windows 更新アップデート前後におかしくなったなどのケースが数多くありその都度調査とかしていたので、突発的なスリープしない問題についてまとめてみました。
ここではWindows10などのOSやPCがそもそもスリープしない根本的な問題のスリープしない場合ではなく、PC起動直後や今だけスリープしないんだけどといった突発的なスリープしない問題についてpowercfgのログを元にその条件と解決策をまとめています。
※動作確認のOSはWindows10に限定しています。
※記述にある解決策や手動でのプロセス終了については自己責任となります。こちらでは保証も対応もしません。
スリープしない要因
主な突発的なスリープ阻害要因は以下のようなものがあります。大体は少し前に自分の行った行動などを辿ってみることで分かることがあります。
- ブラウザを起動している
- ゲームを起動している
- 動画・音楽プレイヤーを起動している
- マルチメディア再生を伴うアプリを起動している
- ネットワークを利用するアプリを起動している
- Windowsアップデートを行った
- Windowsを再起動した
- デフラグが起動している
- 新たに購入したマウスやキーボードを繋いでみた
Webブラウザによるスリープ阻害
Webブラウザによる主な原因は以下となります。
- 音楽を再生・一時停止している
- 動画やライブ配信を再生・一時停止している
- ダウンロードを行っている
音楽と動画の鑑賞
Google ChromeなどのWebブラウザで、Youtubeサイトなどでの動画再生やSoundCloudサイトなどでの音楽再生など、文字や画像以外のマルチメディアの動作状態によってスリープしなくなります。これは鑑賞中はほとんど無操作となるためあえてスリープしないようにしているためです。
なお、音楽再生のみ(動画なし)の場合には、スリープにより電源オフされないがディスプレイのみオフされる場合もあります。
未閲覧のタブ
閉じているウィンドウ上のWebブラウザや、タブブラウザなど現状開いていないタブで動画再生や音楽再生が動いているなどで見た目ではわからないと言ったケースがあります。
マスターボリュームを下げていて気づかない場合もあります。タブにスピーカーアイコンが付く場合もありますので確認してみてください。
Youtubeの場合
以下のpowercfgログはYoutube動画再生時のものです(情報ありのみ抜粋)
「Video Wake Lock」「Playing audio」もあり完全に「スリープさせません」としていることが分かります。
DISPLAY:
[PROCESS] \Device\HarddiskVolumeX\Program Files (x86)\Google\Chrome\Application\chrome.exe
Video Wake Lock
SYSTEM:
[DRIVER] High Definition Audio Device (HDAUDIO\FUNC_xx&VEN_xxxx&DEV_xxxx&SUBSYS_xxxxxxxx&REV_xxxx\x&xxxxxxxx&x&xxxx)
現在 1 つのオーディオ ストリームが使用中です。
実行:
[PROCESS] \Device\HarddiskVolumeX\Program Files (x86)\Google\Chrome\Application\chrome.exe
Playing audio
パソコン内部にある音楽再生機器(デバイス)のドライバ「High Definition Audio Device」が使用中であることと、それを実行しているのがブラウザ「Chrome」であることが分かります。
DISPLAYの項目があるためディスプレイの電源OFFも行われません。
これの解決策としては、Webブラウザを終了する、動画や音楽を再生しているタブを閉じることで解決します。動画や音楽を一時停止するだけではオーディオストリームが使用中となってしまうケースもあるので確実ではありません。
ダウンロード中である
DISPLAY:なし。実行:[PROCESS] \Device\HarddiskVolumeX\Program Files (x86)\Google\Chrome\Application\chrome.exeDownload in progress
PCゲームによるスリープ阻害
PCゲームによる主な原因は以下となります。
- ゲームそのもので禁止している
- ゲーム自体が音楽を再生している
- ゲームパッドによる操作ができる
基本的にはゲームを終了することでスリープ復帰することができますが、稀にゲーム本体のバグなどによって処理が残ることがあります。この場合には、サインアウトや再起動、原因を特定してプロセス終了するなどの処置が必要な場合があります。
大体はサウンドドライバ
ゲームの大半は、BGMやSEなどの音楽・効果音再生があるため、サウンドドライバが動作しています。
DISPLAY:
なし。
SYSTEM:
[DRIVER] High Definition Audio Device (HDAUDIO\FUNC_xx&VEN_xxxx&DEV_xxxx&SUBSYS_xxxxxxxx&REV_xxxx\x&xxxxxxxx&x&xxxx)
現在 1 つのオーディオ ストリームが使用中です。
サウンドドライバの大半はゲームなどで再生停止中であることを明示的に設定してやらないと動作を停止しないので、ゲーム開発元のプログラムの問題や故意にそうしている場合もありますがゲーム起動中=スリープしないとほぼ考えて良いと思います。ほぼとしたのは、これが起動していても処理によってスリープすることがあるためです。
基本的にはサウンドドライバの再生とディスプレイのオフは関係しません(画面が消えてもスリープしなければ音楽は再生できる)
サウンドドライバは再生が終了する(サウンド処理をクローズする)と再度スリープが復帰してしまうので、操作が少ない・待機が多いゲームなどではサウンドドライバを止めないようにするため無音でも動作していることがあります。原始的な技法では、強引に無音の音楽データをループさせるなど行っている場合もあります。
ゲームパッド対応ゲーム
また、ゲームパッドでプレイできるゲームの場合、基本的にはマウスとキーボードが無操作となる=スリープするという状況ができてしまうため、ゲーム中にディスプレイが消えるなどゲームとして問題となってしまうので、故意にスリープしない状況にしているケースがあります。
ゲーム起動時からスリープ禁止設定しているものや、原始的な技法では一定時間ごとにマウスを微妙に動かすなどでスリープさせないなどを行っていることもあります(この方法だとpowercfgには表示されない)
動画・音楽プレイヤーによるスリープ阻害
動画プレイヤーや音楽プレイヤーのソフトウェアは、基本的に鑑賞中は無操作になってしまうためにスリープを阻害します。
必然的にPC内臓のオーディオ機器を使用しますので基本的にはスリープを禁止します。
ただし、停止中や一時停止、ループ再生を行わない状態であれば、よっぽど変なソフトウェアを使っていない限りスリープが許可される状態に再設定されるようです。
基本的にはプログラムを終了することでスリープの処理が復帰します。
Windows Media Playerの場合
動画再生の場合にはディスプレイの電源とスリープを阻害します。音楽再生の場合にはDISPLAYの[PROCESS]は「なし」となるためディスプレイの電源はOFFされます。
正常に動作している場合には再生終了時にスリープ可能状態となります。
DISPLAY:
[PROCESS] \Device\HarddiskVolumeX\Program Files (x86)\Windows Media Player\wmplayer.exe
SYSTEM:
[DRIVER] High Definition Audio Device (HDAUDIO\FUNC_xx&VEN_xxxx&DEV_xxxx&SUBSYS_xxxxxxxx&REV_xxxx\x&xxxxxxxx&x&xxxx)
現在 1 つのオーディオ ストリームが使用中です。
[PROCESS] \Device\HarddiskVolumeX\Program Files (x86)\Windows Media Player\wmplayer.exe
ネットワーク接続されたビデオオーディオ機器へデバイスキャストを行った場合には以下のようになります。これについてはPCオーディオ機器のスリープ阻害ではなくネットワーク通信によるものとなります。常に通信対象のビデオオーディオ機器の状態を確認していますが問題がなければ再生終了時にはスリープ可能状態となります。
DISPLAY:
なし。
SYSTEM:
[PROCESS] \Device\HarddiskVolumeX\Windows\System32\WMPDMC.exe
デバイス キャストを実行中です。
AWAYMODE:
[PROCESS] \Device\HarddiskVolumeX\Windows\System32\MDEServer.exe
このコンピューターは現在、ネットワーク デバイスへのキャストを実行しています。
実行:
[PROCESS] \Device\HarddiskVolumeX\Windows\System32\MDEServer.exe
このコンピューターは現在、ネットワーク デバイスへのキャストを実行しています。
[PROCESS] \Device\HarddiskVolumeX\Windows\System32\WMPDMC.exe
Casting to a device is in progress.
デバイスキャスト機能を利用した場合、稀に以下のようにプロセスが落ちなくなることがあるのですが、原因は不明です(そもそもWindows Media Playerのデバイスキャストが不安定。Windowsアップデートが関係している?)これについてはタスクマネージャーから「タスクの終了」をすることで解決されます。
DISPLAY:
なし。
[PROCESS] \Device\HarddiskVolumeX\Program Files\Windows Media Player\wmpnetwk.exe
メディア共有が Windows Media Player で有効になっています。
VLCメディアプレイヤーの場合
動画再生ソフトウェアの「VLCメディアプレイヤー」の場合には、ディスプレイの電源OFFを含むスリープ阻害を行っています。停止や一時停止することでこれらはすべて解除されます。
DISPLAY:
[PROCESS] \Device\HarddiskVolumeX\Program Files\VideoLAN\VLC\vlc.exe
SYSTEM:
[DRIVER] High Definition Audio Device (HDAUDIO\FUNC_xx&VEN_xxxx&DEV_xxxx&SUBSYS_xxxxxxxx&REV_xxxx\x&xxxxxxxx&x&xxxx)
現在 1 つのオーディオ ストリームが使用中です。
[PROCESS] \Device\HarddiskVolumeX\Program Files\VideoLAN\VLC\vlc.exe
マルチメディア利用ソフトによるスリープ阻害
Noxの場合
DISPLAY:なし。SYSTEM:[PROCESS] \Device\HarddiskVolume7\Program Files\Nox\bin\Nox.exe
Discordの場合
DISPLAY:なし。SYSTEM:[DRIVER] High Definition Audio Device (HDAUDIO\FUNC_xx&VEN_xxxx&DEV_xxxx&SUBSYS_xxxxxxxx&REV_xxxx\x&xxxxxxxx&x&xxxx)現在 1 つのオーディオ ストリームが使用中です。実行:
[PROCESS] \Device\HarddiskVolumeX\Users\XXX\AppData\Local\Discord\app-x.x.xxxx\Discord.exe
Playing audio
LINEの場合
同様のソフトウェアである「LINE」Windows版の場合にはオーディオストリームを常に使用し続けるのでタスクトレイに入ってもスリープすることはありません。
DISPLAY:なし。SYSTEM:[DRIVER] High Definition Audio Device (HDAUDIO\FUNC_xx&VEN_xxxx&DEV_xxxx&SUBSYS_xxxxxxxx&REV_xxxx\x&xxxxxxxx&x&xxxx)現在 1 つのオーディオ ストリームが使用中です。
ネットワーク利用アプリによるスリープ阻害
プリンタ印刷実行中の場合
DISPLAY:なし。SYSTEM:[SERVICE] \Device\HarddiskVolumeX\Windows\System32\spoolsv.exe (Spooler)印刷スプーラーでドキュメントを印刷しています。実行:[SERVICE] \Device\HarddiskVolumeX\Windows\System32\spoolsv.exe (Spooler)印刷スプーラーでドキュメントを印刷しています。
デバイスキャストの場合
DISPLAY:なし。AWAYMODE:[PROCESS] \Device\HarddiskVolumeX\Windows\System32\MDEServer.exeこのコンピューターは現在、ネットワーク デバイスへのキャストを実行しています。実行:[PROCESS] \Device\HarddiskVolumeX\Windows\System32\MDEServer.exeこのコンピューターは現在、ネットワーク デバイスへのキャストを実行しています。[PROCESS] \Device\HarddiskVolumeX\Windows\System32\WMPDMC.exeCasting to a device is in progress.
DISPLAY:なし。SYSTEM:[PROCESS] \Device\HarddiskVolumeX\Windows\System32\WMPDMC.exeデバイス キャストを実行中です。実行:[PROCESS] \Device\HarddiskVolumeX\Windows\System32\WMPDMC.exeCasting to a device is in progress.
Windowsアップデートによるスリープ阻害
Windowsアップデートは、大きなアップデートほどスリープさせない設定が働いているようです。基本的にはアップデート中のスリープによるシステムクラッシュを懸念しているものと思われます。
以下は更新プログラムのチェックによる「USO Worker」のスリープ阻害です。
DISPLAY:
なし。
実行:
[PROCESS] \Device\HarddiskVolumeX\Windows\System32\MoUsoCoreWorker.exe
USO Worker
アップデート前後に解除されない?
基本的にアップデート処理中にスリープしないのは正しいのですが、Microsoftはアップデート後のスリープ解除の処理を色々な環境できちんとチェックしていないのか、スリープ禁止の処理(USO Worker)だけが残ってしまうことが結構あります。
※USO Worker:USO(Update Session Orchestrator) Core Worker Process
それと更新プログラムが待機している場合(再起動待ちや一時停止)にも USO Worker が起動する場合があり、この場合にはプロセスを終了しても再度起動されてしまうことがあります。
特に「更新の一時停止」は期間(日付)を決めて更新をしない機能ですので、アップデートは動いていないはずなのですが、この期間中にもスリープ阻害を行ってしまいます(一時停止でも事前アップデートがある?)
手動で USO Workerのプロセス終了
スタートボタンを右クリック>タスクマネージャーを開いて「プロセス」タブのバックグラウンドプロセスを確認し、USO Worker(MoUsoCoreWorker.exe)を手動でプロセス終了を行うことでスリープ阻害が解除されて正常化する場合があります。
しかし前述したとおり、どのような条件やスケジュールか不明ですが USO Worker が Windows の何かしらかのサービスによって再度起動することがあります。
手動で USO関連サービスの再起動
タスクマネージャーの「サービス」タブにある「UsoSvc」や「wuauserv」が実行中であれば右クリック「再起動」することで USO Workerの動作が正常化する場合(バックグラウンド実行中のMoUsoCoreWorkerの終了)があります。
但し、これらを再起動しなくても一定時間後にスリープ正常化することも確認していますので、あくまでも即時対応が必要な場合の方法となります。
また「BITS」サービスが実行中であればバックグラウンドで Windowsアップデート用の更新ダウンロードが行われているまたは待機している可能性があるようです。
※UsoSrv:Update Session Orchestrator Service の更新
※wuauserv:Windows Update User サービス
※BITS:Background Intelligent Transfer Services
Windows再起動によるスリープ阻害
再起動をしたらスリープしなくなったという場合には、再起動前に何をやっていたかで分かることがあります。Windowsのアップデートは要注意です。
Windowsアップデートによるもの
以下のpowercfgログは再起動後にスリープしなくなった時のものです(情報ありのみ抜粋)
Windowsアップデートの内容によっては、再起動後にメディア共有サービスが初期化?されることがあるらしく、サービスが起動されてスリープを阻害することがあります。
Windowsアップデート時の再起動はイベントビューアーに記録されますが、その際にService Control Manager の警告(イベントID:7031)が出ていることがあり、以下のような異常終了が検出されて不要なサービスが起動されるようです。
Windows Media Player Network Sharing Service サービスは予期せぬ原因により終了しました。このサービスの終了は 1 回目です。次の修正操作が 30000 ミリ秒以内に実行されます: サービスの再開。
「サービス 'WMPNetworkSvc' が開始されました。」(イベントID:14204)でも確認できますが、再起動時に復帰するケースが多いです。
このサービスの処理にはDISPLAYの項目がないのでディスプレイの電源OFFは機能するようですが、スリープを行いません。
DISPLAY:
なし。
SYSTEM:
[PROCESS] \Device\HarddiskVolumeX\Program Files\Windows Media Player\wmpnetwk.exe
メディア共有が Windows Media Player で有効になっています。
この場合の解決策は、タスクマネージャーにてバックグラウンドプロセスを調べて「Windows Media Player ネットワーク共有サービス」があれば「タスクの終了」をするのが有効のようです。
サービス自体が自動起動に設定されているとPC再起動時にまた起動されてしまうので、以下の手順でサービスを開き、「Windows Media Player Network Sharing Service」のプロパティのスタートアップの種類が「自動」になっていれば「手動」や「無効」にして、実行中であればサービスを停止させてください。
・タスクマネージャー>「サービス」タブより、「WMPNetworkSvc」を右クリック>サービス管理ツールを開く(V)
・スタート>Windows 管理ツール>サービス
ハードディスク最適化によるスリープ阻害
アクセスランプが点きっぱなしや点滅、タスクマネージャーでハードディスクが高負荷状態であればデフラグのスケジューリング設定によるハードディスク最適化が実行されている可能性があります。
DISPLAY:
なし。
SYSTEM:
[SERVICE] \Device\HarddiskVolumeX\Windows\System32\svchost.exe (defragsvc)
ドライブ最適化ツールが実行中です。
デフラグ設定の確認方法
デフラグ設定の確認方法は、エクスプローラにて各ドライブのアイコンにて右クリック>プロパティ>「ツール」タブを選択>「ドライブの最適化とデフラグ」にある「最適化(O)」ボタンを押すことで確認できます。
「状態(T)」の一覧表示にて各ドライブの前回の処理した日時と現在の状態の確認ができます。断片化%が多いほど次回の処理に時間がかかるはずです。
また利用期間の短いハードディスクなど事前に「分析(A)」「最適化(O)」の実行を行うことで今後のスリープ阻害時間を減らすことも出来ます。
「スケジュールされた最適化」にてデフラグの自動処理設定を確認したり「設定の変更(S)」を行うことで、スケジュールのON/OFF、デフラグ実行の頻度、適用ドライブの選択が出来ます。
内蔵ハードディスクのみで定期的にデフラグの処理(断片化解除)が行われているのであれば長時間のスリープ阻害とはならないはずです。ただし通常未接続の外部ハードディスクにてデフラグの処理を行った場合などでは長時間のスリープ阻害が発生します。
入力機器の接続によるスリープ阻害
入力機器の接続を行うことでもスリープは阻害されたり遅延したり挙動が変化します。基本的にスリープ自体がキーボードとマウスの入力監視を行っているためです。
未入力状態であればスリープ阻害を行うことがありませんが、色々なメーカーが設計開発したものであるため、入力機器内蔵のファームウェアや専用デバイスドライバ、専用ユーティリティなどによる影響を受けることもあります。
入力機器の場合には、電源スリープ管理とはまた異なった内容であるので以下のようにpowercfgでの検出や確認は行なえません。
DISPLAY:
なし。
SYSTEM:
なし。
AWAYMODE:
なし。
実行:
なし。
PERFBOOST:
なし。
ACTIVELOCKSCREEN:
なし。
これについては別記事にまとめてあります。
まとめ
今まで動いてたスリープ機能が動かなくなったというケースの殆どはOS上で動いているアプリケーション(ソフトウェア)の問題と入力デバイス(接続機器)によるものですので、意外と簡単に解決できることが多いと思います。
作成日:2021/07/14
更新日:
コメント
0 件のコメント :
コメントを投稿