powercfg についてメモしたページです。
Windows がスリープしない、または勝手にスリープ復帰する、という問題が発生した時にチェックする目的で作成。

今回 参考にしたリンク

Windows 7 用リンクも含まれているけれど、Windows 10 でもだいたい使える。
上記ページから、自分のよく使いそうなトコだけを以下に抜き出し。

powercfgの実行方法

powercfg は、
 管理者権限の コマンドプロンプト
 管理者権限の Windows PowerShell
どちらからでも実行できる。

スリープ復帰の原因を探す

powercfg -lastwake

最後にスリープを解除したアプリ、サービス、デバイスを検出
powercfg -lastwake
▲クリックで拡大
この場合、USBデバイスの何かでスリープ復帰している事が分かる。

powercfg -devicequery wake_armed

スリープ解除ができるデバイスのインスタンス名が (すべて) 表示される
powercfg -devicequery wake_armed
▲クリックで拡大
上図のような結果となった場合、スリープ解除ができるデバイスはマウスとキーボードのみ、という事がわかる。

powercfg -devicequery wake_from_any

スリープ状態を解除できるデバイスのフルネームが (すべて) 表示される。
powercfg -devicequery wake_from_any
▲クリックで拡大
※詳細に表示され過ぎるので実用性に欠ける。

スポンサー リンク

特定デバイスが原因でスリープ復帰してしまう場合

powercfg /devicedisablewake "{デバイス名}"

特定のデバイスからスリープ解除機能を削除する。
powercfg -devicequery wake_from_any
▲クリックで拡大
「powercfg /devicequery wake_armed」で確認したデバイス名をダブルコーテーションで囲って使う。

  • コマンド実行後に再度「powercfg /devicequery wake_armed」を実行すると、該当デバイスが消えている事が確認できる。

補足

  • 「powercfg -devicequery wake_armed」で表示されるリストから「HID 準拠マウス」が消えたが、手元のPCではマウスからのスリープ復帰は可能なままだった。マウスやキーボードを使ったスリープ復帰は、別の項目でも制御されているかもしれない。

powercfg /deviceenablewake "{デバイス名}"

上記の逆パターン。
指定したデバイスにスリープ解除機能を付加する。
powercfg /deviceenablewake "{デバイス名}"
▲クリックで拡大

スリープに移行できない場合

powercfg -requests

アプリケーションやサービスなどがスリープの実行を阻止している場合、このコマンドで検出可能。
powercfg -requests
▲クリックで拡大
上図は MPC-HC で動画再生中にコマンドを実行してみたもの。

powercfg -requestsoverride DRIVER "デバイスドライバ名" SYSTEM

デバイスやアプリのスリープ阻止設定よりも、電源管理の要求を優先させる。
※上記は、スリープを阻止しているのが特定のデバイスドライバと特定できた場合、そのデバイスのスリープ阻止設定よりも、電源管理の要求を優先させるもの。

ちょっと難しいので、これを実行する場合は参照元ページを参考にする。

ざっくりメモ

  • 「powercfg -requestsoverride {種類} {プロセスもしくはドライバ名} {要求}」
  • 最初の引数である「種類」は「-requests」オプションの検出結果と同じものを指定
    (通常は「PROCESS」「SERVICE」「DRIVER」のいずれか)
  • 設定情報は、 以下キー
    HKEYLOCALMACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerRequestOverride
    に保存される

その他

powercfg -energy

「電源効率の診断レポート」を出力してくれるコマンド。
各種スリープの対応や省電力設定の状態をチェックしHTML形式で出力する。powercfg -energy
▲クリックで拡大
※結果が表示されるまでしばらく (2~3分) 時間がかかる。
※結果が出るまでPCには触らないようにする。
※結果は「C:/WINDOWS/system32/energy-report.html」に出力される

補足

  • スリープに移行できないPC環境の場合、ここで問題が発見できる場合もある
    (USB デバイスは中断状態になりませんでした、などのエラーが表示される)
  • ユーザーが設定した「高パフォーマンス設定」や「セレクティブ サスペンドの解除」などユーザーが意図して行った変更も「エラー」として報告される (省電力設定になっていない項目はエラーとしてカウントされるっぽい)

このページは以上です。