treedown’s Report

システム管理者に巻き起こる様々な事象を読者の貴方へ報告するブログです。会社でも家庭でも"システム"に携わるすべての方の共感を目指しています。

※https化しました。その影響でしばらくリンク切れなどがあるかもしれませんが徐々に修正していきます。 リンク切れなどのお気づきの点がございましたらコメントなどでご指摘いただけますと助かります。

レジストリでバッテリ充電制御

昨日に省電力ドライバをバージョンアップしましたが、いい機会なのでレジストリで設定する場合の設定値についてもまとめておこうかと思いましたのでご報告します。

内容は当方では未検証です。最終的に考えているのは「ThinkPad Settings Dependency」と「Lenovo System Interface Foundation」の二つをインストールし省電力マネージャーと合わせ技でバッテリ閾値の設定が安定しないもんかね?という希望的観測の途中にある調査です。

よって、この記事が直接お役に立つ可能性は低いかもしれません。

一番わかりやすいのはこのページですかね。
https://forums.lenovo.com/t5/Windows-10/Windows-10-charges-T450s-to-100-charging-threshold-not-respected/td-p/2138913
個人的な主観ですが、このページに全部書いてあるように思えます。

レジストリ設定前に

レジストリ設定でバッテリの閾値設定をする場合には、「ThinkPad Settings Dependency Package」を必要とします。このパッケージでDependency=依存性のあるSettings=設定群を実行してくれる、というところでしょうか?
まずはこのパッケージがインストールされていなければレジストリ修正でのバッテリ閾値設定は有効にできないようです。
インストールをしておきましょう。

レジストリ設定その1

「HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Lenovo\PWRMGRV\ConfKeys\Data」
図:ここの場所

f:id:treedown:20160318183313p:plain

ここに、以下のキーを設定します。
65%切ったら充電開始~80%で充電終了の場合の設定値
10進数65=16進数41となりますので、16進数表記で値を入力します。

  • ChargeStartControlのdword値⇒「00000041」
  • ChargeStopControlのdword値⇒「00000050」
  • ChargeStartPercentageのdword値⇒「00000041」
  • ChargeStopPercentageのdword値⇒「00000050」

ChargeStartControlで充電制御開始、ChargeStopControlで充電制御終了、ということのようです。ChargeStartPercentageが実際のパーセント表記を表しているようなのですが、「ChargeStartControl=ChargeStartPercentage、ChargeStopControl=ChargeStopPercentage」とするのがWindows10での表記方法のようです。
Windows8.1以前では参考URLのフォーラム記述にあるように
------------------------------------------------------------------
 "ChargeStartControl"=dword:00000001
 "ChargeStopControl"=dword:00000001
 "ChargeStartPercentage"=dword:00000041
 "ChargeStopPercentage"=dword:00000050
------------------------------------------------------------------
という具合にCharge~Percentage欄だけを実際の閾値として入力する設定だったようです。今は両方が同一設定になるように入力、という点がポイントの一つですね。

レジストリ設定その2

上と同じように、「HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Lenovo\PWRMGRV\Data」のキーに対しても、同じように設定をします。
図:ここの場所

f:id:treedown:20160318183422p:plain

ここに同じ設定値のキーを入力します。
65%切ったら充電開始~80%で充電終了の場合の設定値

  • ChargeStartControlのdword値⇒「00000041」
  • ChargeStopControlのdword値⇒「00000050」
  • ChargeStartPercentageのdword値⇒「00000041」
  • ChargeStopPercentageのdword値⇒「00000050」

 

レジストリ設定その3

まずは省電力マネージャーなどでバーコード番号を確認します。
図:省電力マネージャーでバーコード・ナンバーの確認

f:id:treedown:20160318183452p:plain

この番号をレジストリキー
「HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Lenovo\PWRMGRV\ConfKeys\Data\」
から探し出します。
図:レジストリ画面でバッテリ一意の番号キー

f:id:treedown:20160318183504p:plain
この配下に、またまた同じく
65%切ったら充電開始~80%で充電終了の場合の設定値

  • ChargeStartControlのdword値⇒「00000041」
  • ChargeStopControlのdword値⇒「00000050」
  • ChargeStartPercentageのdword値⇒「00000041」
  • ChargeStopPercentageのdword値⇒「00000050」

を入力します。バッテリに対しての閾値設定ですね。

レジストリ編集完了後

PCを(OSを)再起動するとバッテリの閾値設定が有効になるそうです。なので、単純に設定するだけでは有効にならないという点は注意がひつようですね。

ちなみに本レジストリ設定であってもWindows10によってバッテリの充電閾値が初期化される症状は発生してしまうようです。つまりこれで解決するようなことではない、ということですね。

ようやく本題です。

長くなってすいません。ようやく本題です。
簡単に言うと、このレジストリ設定を.regファイルにて生成して、ログオンスクリプトとログオフスクリプトでREGコマンドの引数に生成した.regファイルを読み込ませてしまえば、省電力マネージャーがなくてもバッテリ閾値はお望みの値がキープできるんじゃないか?って思ったんですね。

  • ログオンスクリプト⇒ブートプロセス時にOSが書き換えたバッテリ閾値の設定を書き換える。
  • ログオフスクリプト⇒PCをシャットダウンする際にあらかじめ値を設定することで値が書き換わっても次回起動時にはバッテリ閾値が指定の値で起動できるようにする。

…ダメかな。

もっと言うと、この「ThinkPad Settings Dependency」&レジストリ設定に省電力マネージャーのバッテリ閾値の設定を二重にするともしかしてうまくいくんじゃないか?と思ったんですよね。
ただしトラブルシューティングの順番としては、昨日のバージョンアップの次に

  1. ThinkPad Settings Dependency」と「Lenovo System Interface Foundation」をインストールして素の状態でしばらく使用する
  2. これでもダメならレジストリ設定で合わせ技

の順番で確認していくとイイかなと思いました。