電源プランを変更するためのサブコマンド
次の表では電源プラン関連のサブコマンドを示す。
Powercfgでは、電源プランとその中の設定項目はすべてGUID(Globally Unique Identifier)と呼ばれる128bit(16バイト)の数値で表現される。設定項目は、「サブグループ」と呼ばれるGUIDでさらにカテゴリー化されている。これらを表示するには、「/Query」サブコマンド(省略形として/Qが使える)を使うが、このサブコマンドは、電源プランGUIDとサブグループGUIDを指定して表示する設定項目を限定できる。
GUIDは128bitの数値で、コマンドラインでは16進数表記にしたマイクロソフトのGUID表記形式で表されるものの、36文字で人間が正しく扱うのはちょっと困難だ。それで、いくつかのGUIDにはエイリアスと呼ばれる「名前」が付けられている。これを表示するのが「/ALIASES」サブコマンドだ。
Powercfgのヘルプは、一般的なサブコマンドのみを表示するもので、実際には、もっとサブコマンドがある。表でグレーの網かけをした部分が、そうした隠しサブコマンドである。また、/QUERYで表示されるGUIDもGUIで設定できるものに限られており、実際には、電源プランには大量の設定項目がある。これらを表示させるのが/QHサブコマンドだ。同様に/ALIASHサブコマンドを使うと、/QHで表示される項目のエイリアスも表示する。
ただし、注意しておきたいのは、/QHで表示される電源設定に関しては、もともとユーザーによる変更を想定していないため、できるだけ触らないようにすることだ。バッテリ駆動しないサーバーなどでは、省電力機能が問題になる場合に変更することがあるが、通常は変更する必要がない。意味や影響を理解せずに変更すると、消費電力が大きくなってしまうなどの問題が発生する可能性がある。
なお、設定がおかしくなってしまったときには、すべてをデフォルト値に戻す「/RESTOREDEFAULTSCHEMES」が利用できる。これは、ユーザーが追加した電源プランなども消えてしまうので利用には注意が必要だ。
さて、電源プランの変更だが、/SETACTIVEで電源プランを切り替え、「/SETACVALUEINDEX」(AC動作時の設定値)、「/SETDCVALUEINDEX」(DC動作時の設定値)で設定値を変更する。設定値の範囲などは、/Qで表示される各項目に表示されている。
このとき、問題になるのは、多くの電源プランサブコマンドでは、対象となる電源プランを指定しなければならないことだ。現在有効な電源プランは「/GETACTIVESCHEME」で得られる。バッチファイルなどを使って電源設定を変更する場合には、引数にGUIDを指定する必要がある。このとき「SCHEME_CURRENT」というエイリアスが利用できる。たとえば、バッテリ利用時に液晶を閉じたときにスリープしないように設定するには、
powercfg /SETDCVALUEINDEX SCHEME_CURRENT SUB_BUTTONS LIDACTION 0
とする。これをスリープに戻すには、
powercfg /SETDCVALUEINDEX SCHEME_CURRENT SUB_BUTTONS LIDACTION 1
とする。
変更前の設定値を保存して戻すのは、ちょっと面倒だ。というのは、/SETDCVALUEINDEX、/SETACVALUEINDEXは、0x形式の16進数を理解しないからだ。これに対して、/Queryサブコマンドでは、常に16進数表現を返す。なので、cmd.exe組み込みのforコマンドを使って、以下のリストのような処理をするしかない。
Windowsの電源プランは、一定の設定を使い続ける場合には、電源プランを設定しておいて、切り替えればいいのだが、1項目だけ変更してあとで戻すといった操作は結構面倒だ。このとき、バッチファイルを作っておいて、必要に応じて切り替えればよい。
rem 現在の設定値を環境変数savevalに保存
for /F "usebackq tokens=4" %%i in (`powercfg /q SCHEME_CURRENT SUB_BUTTONS LIDACTION ^| find "現在の DC 電源設定のインデックス:"`) do set saveval=%%i
rem その他の処理
echo %saveval%
rem 値の復帰
for /F "usebackq" %%i in (`set /A %saveval%`) do powercfg /SETDCVALUEINDEX SCHEME_CURRENT SUB_BUTTONS LIDACTION %%i
![](/img/blank.gif)
この連載の記事
-
第436回
PC
Copilot+PCとともにWindowsのデバイス間連携に大きな変化!? Project ROMEの逆襲? -
第435回
PC
Windows Terminal Preview v1.21では、前回終了時のタブとその表示内容を復元できるように -
第434回
PC
AIの急速な導入がWindowsの予定を変えた!? Windows 12がすぐには出ない可能性 -
第433回
PC
Windows 11の2つのウィジェットを調べる -
第432回
PC
ウェブブラウザが切り開いたWindowsでのタブアプリケーション -
第431回
PC
Windows上でユニコードを「見る」方法 -
第430回
PC
WindowsからWordPadが廃止! RTF(Rich Text Format)はどうなる? -
第429回
PC
Windows Updateの「利用可能になったらすぐに最新の更新プログラムを入手する」はオンにした方がいいか? -
第428回
PC
Google/Bingで使える検索オプション -
第427回
PC
WindowsのPowerShellのプロファイルを設定する -
第426回
PC
WindowsでAndroidスマホをWebカメラにする機能を試した - この連載の一覧へ