SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

省電力設定の展開を考えてみる

leave a comment

最近、企業で使用している PC の省電力設定について考えることが増えてきていると思います。

本日は省電力設定の展開について考えてみたいと思います。

■一般的なインフラ構成について考えてみる


投稿時点の最新のサーバー OS / クライアント OS は以下の組み合わせになります。

  • Windows Server 2008 R2 SP1
  • Windows 7 x86 SP1
  • Windows 7 x64 SP1

しかし、企業においては以下の構成が多いかと思います。

  • Windows Server 2003 (R2) SP2 のドメインコントローラー
  • Windows XP SP3 (or SP2)

最新の OS で構成されたインフラ環境が望ましいと思いますが、企業内での展開では常に最新を使用していくのも難しく、一つ or 二つ古いバージョンの OS で構成されていることが良くあります。

Windows Server 2003 SP2 + Windows XP SP3 の構成でどういう設定ができるかを考えると汎用性が高いと思いますので、今回はこの組み合わせで考え行きたいと思います。

 

■省電力設定で参考になる情報


今回の投稿は以下の情報を参考にさせていただきまとめています。

  1. Windows PC 節電策
  2. グループ・ポリシーとpowercfg.exeコマンドで電源オプションの設定を変更する
  3. システムに適用される電力管理ポリシーについて
  4. Powercfg.exe を使用して Windows XP で電源設定のグループ ポリシー オブジェクトを作成する方法

1. リンクは Microsoft 社が提供している節電対策の技術情報になります。
節電対策の KB として有名な [KB2545427] の Windows PC 自動節電プログラム について の情報についてもこの情報にリンクが記載されています。

2.~ 4. のリンクは[powercfg.exe] を使用した電源オプションの設定になります。
powercfg.exe は電源オプションを設定できるコマンドになります。
コントロールパネルから PC の電源設定を変更することが可能です。
image

この設定をコマンドで変更する際に [powercfg.exe] を使用します。
スタートアップスクリプトやログオンスクリプトで電源オプションを設定する場合に使えますね。

これらの情報を参考にして展開方法を考えていきたいと思います。

 

■ワークグループ運用の場合


企業によっては AD を使用せずに、ワークグループ環境 (場合によっては NT ドメイン)  で運用をしているところもあると思います。
そのような場合はグループポリシーを使することができません。

サードパーティーの SAM (Software Asset Management) のソフトウェアのエージェントをインストールして、サーバーからの要求でレジストリやソフトウェアのインストールを一元管理できるようにしているところもあるかもしれないですね。

今回は SAM のソフトが入っていないワークグループ環境で考えてみたいと思います。

ワークグループ環境の場合は

  1. 設定変更をするようにという社内通達を出す
  2. 設定変更の状況をマネージャーから報告する

という形で個人で作業を実施し、レポートラインに報告をすることになるかなと思います。

AD の配下にクライアント PC がないため、管理者が強制して設定を一元管理することができません。
この場合は、[KB2545427] を各自で手動でインストールする形でなるかと。
# 各自がローカル PC の Administrators グループのユーザーを使用している場合という条件になりますが。

[KB2545427] は Windows PC 自動節電プログラムについて という技術情報についての Fix it になります。

Windows XP SP3 の通常の電源オプションの設定は [自宅または会社のデスク] となっています。
image

Windows XP ではデフォルトで以下の電源設定が登録されています。
image

それでは、Fix it を適用してみます。
image

  1. Fix it を実行します。
    image
  2. [同意する] を有効にして、[次へ] をクリックします。
    image
  3. インストールが開始されます。
    image
  4. [閉じる] をクリックします。
    image

以上で Fix it の適用は完了です。
Fix it を適用すると電源設定が [最小の電源管理] として設定されます。
image

私は最初、思い違いをしていたのですが、この Fix it は電源の設定を変更するだけで、[最小の電源管理] という設定を追加してくれるものではないようです。
実際には、[HKCUControl PanelPowerCfg] の [CurrentPowerPolicy (REG_SZ)] を [4] に変更するという操作をしているようです。
image

そのため、最小の電源管理の設定を削除してしまっていると Fix it を適用しても設定が変更されないので注意が必要となりそうです。

また、[HKEY_CURRENT_USER] に対して設定を変更しているので、そのコンピューターの他のユーザーには設定が反映されません。
このFix it は実行したユーザーに対して設定が変更されるというイメージなのかと。

ワークグループ環境の場合は、これらの手順をドキュメント化、展開して各自設定をした後に報告をして全員の設定が終わったら展開完了にするのが一般的なのかな~と考えています。

この方法は小規模な台数のドメイン環境を使用していて各ユーザーはローカル PC の Administrators グループの場合も使うことになる可能性はあると思います。
小規模な環境ではユーザーの認証基盤としてのみ AD を使用していて、グループポリシーは使用していないということもあるかと思います。
本来はグループポリシーを使用した運用を検討する良いタイミングだと思うのですが、その設定を勉強する時間が惜しいという場合には、単発で適用してしまった方が展開は早いかと。
# 技術者としてはグループポリシーを使用してもらいたいですが、そうせざるを得ない場合があることも重々承知しているので。

ローカルの Administratos 権限で PC を使用している場合、ユーザーが設定を変更できてしまいますので、そこはきちんとルールを周知徹底する必要が出てきます。
# 保守 / 運用で起動したままの端末にしないといけないようなものは適切な設定かを判断する必要もありますね。

[最小の電源管理] の場合、電源管理は以下の設定になります。

[Hyper-V のゲスト OS の場合]
image

[ThinkPad T42 の場合]
image

せっかく省電力設定をしても [定期的に省電力の設定が動いてしまって使いずらい] と思ってユーザーがなんでも変更してしまうと省電力になりませんので…。
# これはドメイン環境の運用でも同じなのですが。

Fix it に関しては、

  • 管理者としてログオンしているユーザーのユーザー固有の電源設定を変更するもの

として使用することになるかと思います。

 

■ドメイン環境の場合 (Fix it をグループポリシーで適用)


次にドメイン環境の場合を考えてみます。
ドメイン環境の場合はみんな大好きグループポリシーで管理することになります。

まずはグループポリシーの [ソフトウェア インストール] で Fix it を [割り当て] てどうなるかを確認してみたいと思います。
グループポリシーでは、拡張子が [.msi] のファイルを [ソフトウェア インストール] を使用して配布する機能があります。
image

共有フォルダに Fix it の msi を保存して以下の操作を行うことでソフトウェアインストールをするためのポリシーを作成できます。

  1. グループポリシー 管理コンソールを実行します。
  2. グループポリシーオブジェクトを新規作成します。
    image
  3. グループポリシー名を入力して、[OK] をクリックします。
    image
  4. 作成したポリシーを編集します。
    image
  5. [コンピューターの構成] → [ソフトウェアの設定] → [ソフトウェア インストール] から [新規作成] → [パッケージ] をクリックします。
    image
  6. 共有フォルダ上の Fix it の msi ファイルを選択します。
    image
    共有フォルダ上のファイルでない場合は以下の警告が発生します。
    グループポリシーでファイルを展開する場合は共有フォルダ上でないとクライアントがファイルにアクセスができないからですね。
    image
  7. [割り当て] (デフォルトの設定) を選択して、[OK] をクリックします。
    image

以上でポリシーの作成は完了です。

作成したポリシーを OU にリンクさせればグループポリシーの設定は完了です。
image
OU 以下のコンピューターアカウントに対してポリシーが適用されるので適用されてよいかのカスタマイズは、[セキュリティ フィルタ処理] か [WMI フィルタ処理] で制限する必要があります。

今回は、Windows XP の端末が入っている、[USER_OU] にポリシーをリンクさせています。
image

 

それでは、Windows XP の端末を起動してみたいと思います。

今回、ログインで使用しているユーザーはローカル PC の [Users グループ] に登録されている、[Domain Users グループ] のユーザーを使用しています。
そのため、ローカル PC の管理者権限はないため、PC にインストールできるソフトや変更できる設定に制限があります。
image

企業によってはグループポリシーの [コンピューターの構成] → [Windows の設定] → [セキュリティの設定] → [制限されたグループ] を使用して、[Power Users] グループに [Domain Users] を登録して、ローカル PC の [Power Users] グループのユーザーとして利用するパターンもあるかもしれないですね。
image
image

[コンピューターの構成] で構成しているので、コンピューターの起動時にソフトウェアインストールに設定した Fix it がインストールされます。
# 起動後に再起動しないと適用されないかもしれないですが。
image

それでは設定を確認してみます。
[プログラムの追加と削除] で [Microsoft Fix it 50666] がインストールされていることが確認できます。
image

電源の設定がどうなっているかを確認してみます。
image

インストールされているのですが設定は変わっていないのですよね…。

[コンピューターの構成] のソフトウェアインストールで Fix it を配布した場合は、[HKEY_USERS.DEFAULT] のレジストリが変更されているため設定が変わっていないように見えるようです。
# [HKUControl PanelPowerCfg] の [CurrentPowerPolicy (REG_SZ)] が [4] に変更されていました。

それでは、[ユーザーの構成] の[ソフトウェアのインストール] を使用してみたらどうなるでしょう。
image

コンピューターの構成と同様、設定は初期のままでした…。
image

ということで、Fix it をグループポリシーで展開するのはうまくできませんでした…。

 

■ドメイン環境の場合 (ログオンスクリプトで変更)


[HKCUControl PanelPowerCfg] ですが、ログオンユーザーには [フルコントロール] の権限が付与されています。
image

コントロールパネルからは権限が不足していて、変更ができないのですがレジストリを直接変更することで強制することが可能です。
image

 

レジストリは [reg コマンド] で変更することができますので、以下のようなコマンドをログオンスクリプトとして設定することで、ログオン時に設定を強制することが可能です。

reg add "HKCUControl PanelPowerCfg" /v CurrentPowerPolicy /d 4 /f

 

  1. ポリシーを準備します。(この手順は上に書いているので省略します)
  2. [ユーザーの構成] → [Windows の設定] → [スクリプト (ログオン/ログオフ)] の [ログオン] をダブルクリックします。
    image
  3. [ファイルの表示] をクリックします。
    image
  4. 表示されたディレクトリに上述の reg コマンドを記載したバッチファイルを作成します。
    image
  5. ログオン のプロパティに戻り [追加] をクリックします。
  6. [参照] をクリックして、先ほど準備したバッチを選択し、[OK] をクリックします。
    image
  7. [OK] をクリックします。
    image

以上で、ログオンスクリプトの準備は完了です。

ログオンをすると電源の設定が変わっていることが確認できます。
image

ユーザーのログオンスクリプトで実行しているため、端末の制御ができていませんがこの方法は強制設定として使えそうですね。

 

■ドメイン環境の場合 (レジストリで変更)


Users グループの場合、コントロールパネルの電源オプションからは権限が不足しているため設定を変更することができません。
image

グループポリシーのレジストリを使い、権限を付与することでコントロールパネルから変更することが可能となります。
強制力はありませんが、ユーザー主体で設定可能するというケースでこの方法を使用することができるかと。

  1. ポリシーを準備します。(この手順は上に書いているので省略します)
  2. [コンピュータの構成] → [Windows の設定] → [セキュリティの設定] の [レジストリ] を右クリックして、[キーの追加] をクリックします。
    image
  3. [MACHINESOFTWAREMicrosoftWindowsCurrentVersionControls FolderPowerCfg] を選択して、[OK] をクリックします。
    image
  4. [Domain Users] に [フル コントロール] を許可して、[OK] をクリックします。
    image
  5. [継承可能なアクセス許可をすべてのサブ キーに伝達する] を選択 (デフォルトの設定) し [OK] をクリックします。
    image

以上でポリシーの設定は完了です。

再起動して、コンピューターの構成のポリシーを適用させてから動作を確認してみます。
image

Users グループでも正常に設定を変更することができました。

セルフサービスになりますが Users グループでも運用が可能な設定にできそうですね。
[Powercfg コマンド] を使用したコマンドラインからの変更もこのレジストリを設定することで可能となりますのでバッチ化もすることができます。
# 電源設定のプロファイルを追加することも可能かと。

 

■ドメイン環境の場合 (グループポリシーの基本設定)


Windows Server 2008 以降のグループポリシーであれば、[管理用テンプレート] → [システム] → [電源の管理] があり、電源管理系のポリシーがあります。
ただし、このポリシーは対象が Windows Vista 以降となっています。
image

Windows Server 2008以降で実装された機能になりますが、Windows Server 2008 ではグループポリシーの基本設定という機能があります。
これ、結構使えます。グループポリシー基本設定
image

この機能であれば Windows XP に対しても電源オプションを設定することが可能です。
image

グループポリシーの基本設定は Windows Server 2003 のドメインコントローラーでも使用できるのですが、2003 のグループポリシー管理コンソールでは設定することができません。

Windows 7 の端末にリモートサーバー管理ツール (RSAT) をインストールしてグループポリシーを編集できるようにすることで、グループポリシーの基本設定を使用することが可能です。
# # VIsta / 2008 / 2008 R2 の端末でも設定可能だと思います。 (Vista 以降であれば可のはずです)
Windows 7 Service Pack 1 (SP1) 用のリモート サーバー管理ツール
Windows Vista 用 Microsoft リモート サーバー管理ツール

プログラムをダウンロードして、Windows 7 の端末にインストールをします。
image
image
image

RSAT をインストールしただけではグループポリシーの管理コンソールは使用できません。
インストールした後に Windows の機能を有効化する必要があります。

  1. [コントロールパネル] から [プログラムと機能] をクリックします。
    image
  2. [Windows の機能の有効化または無効化] はクリックします。
    image
  3. [リモート サーバー管理ツール] → [機能管理ツール] → [グループ ポリシー管理ツール] を選択して、[OK] をクリックします。
    < img style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:inline;border-top:0;border-right:0;padding-top:0;margin:0 5px;" title="image" border="0" alt="image" src="http://engineermemo.files.wordpress.com/2011/06/image_thumb111.png" width="558" height="321" />
    image

インストールが完了すると、[管理ツール] に [グループ ポリシーの管理] (GPMC) が追加されています。
image

グループ ポリシーの管理をドメインの Administrator で実行します。
image
image

Windows 7 の RSAT にインストールした GPMC からであればグループポリシーの基本設定を設定することが可能となります。
image

  1. [ユーザーの構成] → [基本設定] → [コントロール パネルの設定] → [電源オプション] を右クリックして、[新規作成] → [電源設定 (Windows XP)] をクリックします。
    image
  2. [電源設定] から [最小の電源管理] を選択して、[OK] をクリックします。
    image

以上で、基本設定のポリシーは設定完了です。

Windows XP でも基本設定を使用することができるのですが条件があります。
設定を使用できるようにする端末に CSE(client-side extensions) をインストールする必要があります。
Windows XP 用グループ ポリシーの基本設定クライアント側拡張機能 (KB943729)
# Windows Vista でも修正プログラムをインストールする必要があります。
   Windows Vista 用グループ ポリシーの基本設定クライアント側拡張機能 (KB943729)

 

CSE をインストールしていない端末では基本設定を設定しても反映されないので注意が必要です。
そのため、このプログラムの展開方法を考えないといけないのですよね。

WSUS があれば楽なのですがない場合は、スタートアップスクリプトでインストールさせることができます。
# 起動するたびに何回もインストールされてしまうのでそこは何か考えないといけないですか。

image
image

CSE がインストールされている環境であれば、基本設定が使用できますので、省電力設定を反映されることが可能です。

基本設定では、[1 回だけ適用し再適用しない] という設定をすることができます。
image

[メイン環境の場合 (レジストリで変更)] の設定と組み合わせると、初回は [最小の電源管理] を適用させユーザーが任意で設定を変更できるようにするということも可能です。

 

本投稿では省電力設定について何パターンかまとめてみました。

途中で記事を分割すればよかったのですが、勢いで一つの投稿で書いてしまいました…。
# かなり読みにくい投稿になってしまったのですが、引き返すことができませんでした。

自分で設定する場合はどういう方法があるかと Microsoft から提供されている技術情報を元に考えてみただけですので、他にもいくつも方法があるかと思います。

Share

Written by Masayuki.Ozawa

6月 11th, 2011 at 8:50 pm

Leave a Reply