Windows TIPS
[System Enviroment]
  Windows TIPS TOPへ
Windows TIPS全リストへ
内容別分類一覧へ

グループ・ポリシーとpowercfg.exeコマンドで電源オプションの設定を変更する

解説をスキップして操作方法を読む

デジタルアドバンテージ 小林 章彦
2008/05/23
対象ソフトウェア
Windows XP SP2
Windows Server 2003
電源オプションを利用することで、使用していない時間のコンピュータの消費電力を下げることができる。
[コントロール パネル]−[電源オプション]アプレットで個別に設定可能だが、企業内のすべてのコンピュータに対して個別に設定するのは大変である。
powercfg.exeコマンドとグループ・ポリシーを利用すると、電源オプションの設定を一括で変更できる。

解説

 昼休みや会議中など、コンピュータの電源が入っているものの、利用されていない時間は意外と長いもの。こうした利用していない時間帯のコンピュータの無駄な電力消費も、台数が多い企業ではばかにならない。Windows OSでは、電源オプションにより、一定時間の利用がない場合、自動的にハードディスクやディスプレイの電源をオフにしたり、サスペンドや休止状態に移行したりすることができる。

 Windows XPとWindows Server 2003では、電源オプションがレジストリ・キーにバイナリ・データとして記録されていることから、単純にグループ・ポリシーを利用した一括設定ができない(Windows Vistaでは、この点が改善されており一部の設定を除き、グループ・ポリシーで設定可能である)。そこで、Windows XP SP2以降のWindows OSに含まれているpowercfg.exeコマンドとグループ・ポリシーを組み合わせて、電源オプションを設定する方法を解説する(powercfg.exeコマンドによる電源オプションの設定は、TIPS「powercfg.exeコマンドで電源オプションの設定を変更する」参照のこと)。ただしpowercfg.exeコマンドの実行には、管理者権限が必要になるため、すべてのユーザーに対して管理者権限を与えているような限定的な組織でしか、この方法は利用できない点に注意してほしい。

 なおENERGY STAR(米国環境保護庁と米国エネルギー省が推進する省電力プログラム)では、Terra Novum社が開発したEZ GPOと呼ぶツールを無償提供しており、このツールを各コンピュータにインストールしてサービスとして起動しておくことで、レジストリの読み書きが可能になり、グループ・ポリシーを利用した電源オプションの設定ができるようになるということだ。これなら、グループ・ポリシーによるほかの設定変更同様、各ユーザーには管理者権限は不要である。EZ GPOを利用したグループ・ポリシーによる電源オプションの設定方法については、改めて別のTIPSとして紹介する予定だ。

操作方法

 グループ・ポリシーで電源オプションの設定を行うには、ドメイン上のグループ・ポリシーを編集して、ログオン時にpowercfg.exeコマンドを実行するように設定すればよい。グループ・ポリシーを編集するには、TIPS「GPMCを活用する」で紹介したグループ・ポリシー管理コンソールを使うか、以下のようにしてグループ・ポリシーを編集する。

 まずドメイン・コントローラ上で、[ファイル名を指定して実行]をクリックし、「dsa.msc」と入力して[Active Directory ユーザーとコンピュータ]スナップインを起動する。次に[Active Directory ユーザーとコンピュータ]ダイアログでドメイン・コンテナを右クリックし、メニューから[プロパティ]を選択する。

画面 [Active Directory ユーザーとコンピュータ]ダイアログの画面
[ファイル名を指定して実行]をクリックし、「dsa.msc」と入力して[Active Directory ユーザーとコンピュータ]スナップインが起動する。
  ドメイン・コンテナを右クリックして、メニューから[プロパティ]を選択する。→

 <ドメイン名>のプロパティの[グループ ポリシー]タブで、[新規]ボタンをクリックし、新規の「グループ・ポリシー・オブジェクトのリンク」を作成する。名前を「Power Configuration Policy」などに変更したうえで、右ボタン・メニューから[編集]を選択するか、[編集]ボタンをクリックする。[グループ ポリシー オブジェクト エディタ]が起動するので、[ユーザーの構成]−[Windowsの設定]を展開し、[スクリプト(ログオン/ログオフ)]を選択する。

<ドメイン名>のプロパティの画面
[グループ ポリシー]タブで、[新規]ボタンをクリックし、新規の「グループ・ポリシー・オブジェクトのリンク」を作成する。
  [新規]ボタンをクリックして、新しい「グループ・ポリシー・オブジェクトのリンク」を作成する。→

<ドメイン名>のプロパティで新規の「グループ・ポリシー・オブジェクトのリンク」を編集
新規に作成した「グループ・ポリシー・オブジェクトのリンク」の名前を「Power Configuration Policy」などに変更したうえで、右ボタン・メニューから[編集]を選択する。
  新規に作成した「グループ・ポリシー・オブジェクトのリンク」の名前を変更する。
  右ボタン・メニューから[編集]を選択する。→

 右ペインの[ログオン]をダブルクリックして、[ログオンのプロパティ]を開く。[ログオンのプロパティ]ダイアログの[ファイルの表示]ボタンをクリックすると、Windowsエクスプローラでuser\Scripts\Logonフォルダが開くので、ここに[ファイル]−[新規作成]−[テキスト ドキュメント]を選択して、新しいテキスト・ファイル(BATファイル)を作成する。作成されたテキスト・ファイルの名前を「powercfg.bat」などとする。

[グループ ポリシー オブジェクト エディタ]の画面
[グループ ポリシー オブジェクト エディタ]が起動するので、ここでコンピュータの起動時にスクリプト(バッチ・ファイル)が実行されるように設定を行う。
  [ユーザーの構成]−[Windowsの設定]を展開し、[スクリプト(ログオン/ログオフ)]を選択する。
  ログオンをダブルクリックして、[ログオンのプロパティ]を開く。→

[ログオンのプロパティ]の画面
ここでログオン時に実行するスクリプトを選択する。
  [ファイルの表示]ボタンをクリックする。→

Windowsエクスプローラで<ドメイン名>のuser\Scripts\Logonフォルダを開いた画面
Windowsエクスプローラで<ドメイン名>のuser\Scripts\Logonフォルダが開くので、ここに[ファイル]−[新規作成]−[テキスト ドキュメント]を選択して、新しいテキスト・ファイル(BATファイル)を作成する。
  [テキスト ドキュメント]を選択して、テキスト・ファイルを作成する。→

 このpowercfg.batを右クリックして、[編集]ボタンをクリックする。[開いているファイル − セキュリティの警告]ダイアログが表示されるので、ここで[実行]ボタンをクリックし、メモ帳でpowercfg.batを開く。

powercfg.batを編集する
作成したpowercfg.batにコマンドを記述する。
  ファイル名を「powercfg.bat」などに変更する。バッチ・ファイルの必要があるので、拡張子は.BATとする。
  ファイル名を右クリックし、メニューから[編集]を選択する。
  [セキュリティの警告]ダイアログが表示されるので、[実行]ボタンをクリックする。すると、メモ帳でpowercfg.batが開かれる。

 ここに設定したい電源オプションをpowercfg.exeのオプションで記述する。powercfg.exeのオプションは、「powercfg.exeコマンドで電源オプションの設定を変更する」を参照していただきたい。ここでは、その際に紹介した下記の「社内推奨」のオプションを設定することとする。ファイルを保存した後、メモ帳とWindowsエクスプローラを閉じる。

echo off
powercfg.exe /C 社内推奨
powercfg.exe /X 社内推奨 /monitor-timeout-ac 10
powercfg.exe /X 社内推奨 /monitor-timeout-dc 5
powercfg.exe /X 社内推奨 /disk-timeout-ac 20
powercfg.exe /X 社内推奨 /disk-timeout-dc 10
powercfg.exe /X 社内推奨 /standby-timeout-ac 30
powercfg.exe /X 社内推奨 /standby-timeout-dc 15
powercfg.exe /X 社内推奨 /hibernate-timeout-ac 60
powercfg.exe /X 社内推奨 /hibernate-timeout-dc 30
powercfg.exe /X 社内推奨 /processor-throttle-ac adaptive
powercfg.exe /X 社内推奨 /processor-throttle-dc adaptive
powercfg.exe /G ON /OPTION:resumepassword
powercfg.exe /S 社内推奨
echo on
powercfg.batで設定したオプション

 [ログオンのプロパティ]ダイアログに戻り、[追加]ボタンをクリックする。[スクリプトの追加]ダイアログが表示されるので、ここで[参照]ボタンをクリックし、作成した「powercfg.bat」を選択して、ダイアログを閉じる。これでログオン時にこのバッチ・ファイルが実行され、電源オプションに「社内推奨」がセットされるようになる。

 ただしアクセス権の設定によっては、レジストリに対する権限が足りずにpowercfg.exeの設定が実行されない場合がある(この際、特にエラーなどは表示されない)。コンピュータ(クライアント)を再起動した後にログオンを行い、設定が反映されないような場合は、作成したポリシーの「Power Configuration Policy」に対して、次の操作を行う必要がある。

 「Power Configuration Policy」をグループ・ポリシー・オブジェクト・エディタで開き、[コンピュータの構成]−[Windowsの設定]−[セキュリティの設定]−[レジストリ]を選択する。

グループ・ポリシー・オブジェクト・エディタの[セキュリティの設定]の画面
[コンピュータの構成]−[Windowsの設定]−[セキュリティの設定]−[レジストリ]−[レジストリ]にキーを追加する。
  [コンピュータの構成]−[Windowsの設定]−[セキュリティの設定]−[レジストリ]−[レジストリ]を選択する。
  右ペインで右クリックして、メニューから[キーの追加]を選択する。→

 [レジストリ]の右ペインで右クリックし、メニューから[キーの追加]を選択する。[レジストリ キーの選択]ダイアログが開くので、powercfg.exeコマンドが書き込みを行う以下のレジストリ・キーを選択し、[OK]ボタンをクリックする。

MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Controls Folder\PowerCfg

 そのレジストリ・キーに対するアクセス許可を行う[データベース セキュリティ]ダイアログが表示されるので、「グループ名またはユーザー名」にDomain Usersを追加し、[フル コントロール]の許可をチェックしておく。同様に、以下のレジストリについてもDomain Usersに対して、[フル コントロール]の権限を付与しておく。

USERS\.DEFAULT\Control Panel\PowerCfg

[レジストリ キーの選択]ダイアログの画面
アクセス権を追加するレジストリ・キーを選択する。
  アクセス権の追加が必要なキーを選択するか、入力して、[OK]ボタンをクリックする。→

[データベース セキュリティ]ダイアログの画面
指定したレジストリ・キーに対してアクセス権の追加を行う。
  [追加]ボタンをクリックし、クライアントに対してレジストリの編集が可能なグループ名もしくはユーザー名を追加して、フルコントロールの許可を与えておく。Domain Usersに対して、フルコントロールを許可しておけばよい。→

[オブジェクトの追加]ダイアログの画面
[オブジェクトの追加]ダイアログが表示される。アクセス権の変更を行いたい場合は、ここで[セキュリティの編集]ボタンをクリックすればよい。
  「継承可能なアクセス許可をすべてのサブ キーに伝達する」が選択されていることを確認して[OK]ボタンをクリックする。

 これで管理者権限を持つユーザーがコンピュータにログオンするたびに、設定した電源オプションが設定されるようになるはずだ。設定が反映されるのが管理者権限を持つユーザーに限定されるのが難点だが、そういった管理を行っている企業ならば一括で電源オプションの設定が可能である。End of Article

「Windows TIPS」


Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間