powercfg についてメモしたページです。
Windows がスリープしない、または勝手にスリープ復帰する、という問題が発生した時にチェックする目的で作成。
今回 参考にしたリンク
- Powercfg のコマンド ライン オプション - Microsoft
- レッツ! Windows 7 - 電源管理編(2)| マイナビニュース
- レッツ! Windows 7 - 電源管理編(4) | マイナビニュース
Windows 7 用リンクも含まれているけれど、Windows 10 でもだいたい使える。
上記ページから、自分のよく使いそうなトコだけを以下に抜き出し。
powercfgの実行方法
powercfg は、
管理者権限の コマンドプロンプト
管理者権限の Windows PowerShell
どちらからでも実行できる。
スリープ復帰の原因を探す
powercfg -lastwake
最後にスリープを解除したアプリ、サービス、デバイスを検出
▲クリックで拡大
この場合、USBデバイスの何かでスリープ復帰している事が分かる。
powercfg -devicequery wake_armed
スリープ解除ができるデバイスのインスタンス名が (すべて) 表示される
▲クリックで拡大
上図のような結果となった場合、スリープ解除ができるデバイスはマウスとキーボードのみ、という事がわかる。
powercfg -devicequery wake_from_any
スリープ状態を解除できるデバイスのフルネームが (すべて) 表示される。
▲クリックで拡大
※詳細に表示され過ぎるので実用性に欠ける。
特定デバイスが原因でスリープ復帰してしまう場合
powercfg /devicedisablewake "{デバイス名}"
特定のデバイスからスリープ解除機能を削除する。
▲クリックで拡大
「powercfg /devicequery wake_armed」で確認したデバイス名をダブルコーテーションで囲って使う。
- コマンド実行後に再度「powercfg /devicequery wake_armed」を実行すると、該当デバイスが消えている事が確認できる。
補足
- 「powercfg -devicequery wake_armed」で表示されるリストから「HID 準拠マウス」が消えたが、手元のPCではマウスからのスリープ復帰は可能なままだった。マウスやキーボードを使ったスリープ復帰は、別の項目でも制御されているかもしれない。
powercfg /deviceenablewake "{デバイス名}"
上記の逆パターン。
指定したデバイスにスリープ解除機能を付加する。
▲クリックで拡大
スリープに移行できない場合
powercfg -requests
アプリケーションやサービスなどがスリープの実行を阻止している場合、このコマンドで検出可能。
▲クリックで拡大
上図は MPC-HC で動画再生中にコマンドを実行してみたもの。
powercfg -requestsoverride DRIVER "デバイスドライバ名" SYSTEM
デバイスやアプリのスリープ阻止設定よりも、電源管理の要求を優先させる。
※上記は、スリープを阻止しているのが特定のデバイスドライバと特定できた場合、そのデバイスのスリープ阻止設定よりも、電源管理の要求を優先させるもの。
ちょっと難しいので、これを実行する場合は参照元ページを参考にする。
ざっくりメモ
- 「powercfg -requestsoverride {種類} {プロセスもしくはドライバ名} {要求}」
- 最初の引数である「種類」は「-requests」オプションの検出結果と同じものを指定
(通常は「PROCESS」「SERVICE」「DRIVER」のいずれか) - 設定情報は、 以下キー
HKEYLOCALMACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerRequestOverride
に保存される
その他
powercfg -energy
「電源効率の診断レポート」を出力してくれるコマンド。
各種スリープの対応や省電力設定の状態をチェックしHTML形式で出力する。
▲クリックで拡大
※結果が表示されるまでしばらく (2~3分) 時間がかかる。
※結果が出るまでPCには触らないようにする。
※結果は「C:/WINDOWS/system32/energy-report.html」に出力される
補足
- スリープに移行できないPC環境の場合、ここで問題が発見できる場合もある
(USB デバイスは中断状態になりませんでした、などのエラーが表示される) - ユーザーが設定した「高パフォーマンス設定」や「セレクティブ サスペンドの解除」などユーザーが意図して行った変更も「エラー」として報告される (省電力設定になっていない項目はエラーとしてカウントされるっぽい)
このページは以上です。