こんにちは、阿久津です。先週末からサッカーのW杯が始まり、ビデオキャプチャマシンで録画したファイルを、マシンパワーのあるメインコンピュータにコピーし、編集してHDDに待避、編集してHDDに待避……の日々を送っています。本当はエンコードまで済ましたいのですが、原稿執筆用マシンでもあるメインコンピュータをこれ以上、酷使する余裕はありません。

W杯が始まる前に、サブマシンとして使用中の古いコンピュータであらかじめエンコード環境を作っておけば、と今更思っても後の祭。さすがに締切を破る理由として「サッカーの試合をエンコードしていました」ではスジが通りませんので、いつか余裕ができたら……とTS(MPEG-2トランスポートストリーム)ファイルのまま、HDDに保存しています。

このような作業を繰り返していて気になり出したのが、Windows 7のスリープに移行するタイミング。この時間は「プラン設定の編集」で確認可能です。初期状態では30分(電源プラン「バランス」の場合)。詳細設定を行なう「電源オプション」ダイアログも同様の設定項目は用意されていますが、スリープ解除タイマーに関する設定が用意されているのみで、時間に関する設定しか用意されていません(図01~04)。

図01: [Win]+[R]キーを押して「ファイル名を指定して実行」を起動し、テキストボックスに「control.exe /name Microsoft.PowerOptions /page pagePlanSettings」と入力して<OK>ボタンをクリックします

図02: すると「プラン設定の編集」が開きます。ご覧のようにスリープへの移行タイミングは「コンピューターをスリープ状態にする」のドロップダウンリストで設定した数値が使用されます

図03: [Win]+[R]キーを押して「ファイル名を指定して実行」を起動し、テキストボックスに「control.exe powercfg.cpl,,1」と入力して<OK>ボタンをクリックします

図04: これで「電源オプション」ダイアログが起動します。ここでもスリープに関する設定は「次の時間が経過後スリープする」「スリープ解除タイマーの許可」の二つしかありません

改めて述べるまでもなく、スリープモードはコンピュータの電源管理を行なうACPIが、メモリ以外への給電を停止するS3を実行するわけですが、場合によっては所定の30分を経過してもスリープへ移行しない場合があります。もちろんアプリケーションによってはスリープモードへの移行を阻止する機能を備えている場合がありますので、それらの機能が動作しているのでしょう。ちなみに、同ロジックはWinodws 7側で制御可能ですが、今回の主題は異なりますので、また別の機会に。

もう一つの理由が、ネットワーク上のファイルを参照しているケース。Windows 7の初期状態では、ネットワーク上のファイルを参照している間は自動スリープ機能が抑制されます。そのため前述のようにビデオキャプチャマシン(リモートコンピュータ)からメインマシンに大量のファイルをコピーしていたため、スリープが実行されなかったのでしょう。この仕様は当然と言うべきですが、状況によってはスリープへの移行を優先したい場合もあります。

そこで今週は、リモートファイル参照中でもスリープモードの実行を許可し、省電力化を高めるレジストリチューニングをお送りしましょう。

1.[Win]+[R]キーを押して「ファイル名を指定して実行」を起動し、テキストボックスに「cmd」と入力してから<OK>ボタンをクリックします。
2.コマンドプロンプトに「powercfg -l」と入力して[Enter]キーを押します。これで各電源プランに割り当てられたGUIDが列挙されました。
3.[Win]+[R]キーを押して「ファイル名を指定して実行」を起動し、テキストボックスに「regedit」と入力してから<OK>ボタンをクリックします。
4.レジストリエディタが起動したら、HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Power \ PowerSettings \ 238C9FA8-0AAD-41ED-83F4-97BE242C8F20 \ d4c1d4c8-d5cc-43d3-b83e-fc51215cb04d \ DefaultPowerSchemeValuesまでキーをたどって開きます。
5.ステップ02で確認したGUIDを名前に持つキーを開きます。
6.DWORD値「ACSettingIndex」をダブルクリックし、値のデータを「1」に変更して<OK>ボタンをクリックします。
7.レジストリエディタを終了し、コンピュータを再起動してください。

これでチューニング終了です(図05~12)。

図05: [Win]+[R]キーを押して「ファイル名を指定して実行」を起動し、テキストボックスに「cmd」と入力して<OK>ボタンをクリックします

図06: 「powercfg -l」と入力し、[Enter]キーを押してください。これで各電源プランのGUIDが列挙されます

図07: [Win]+[R]キーを押して「ファイル名を指定して実行」を起動し、テキストボックスに「regedit」と入力して<OK>ボタンをクリックします

図08: レジストリエディタが起動したら、HKEY_LOCAL_MACHINE\SYSTEM \ CurrentControlSet \ Control \ Power \ PowerSettings \ 238C9FA8-0AAD-41ED-83F4-97BE242C8F20 \ d4c1d4c8-d5cc-43d3-b83e-fc51215cb04d \ DefaultPowerSchemeValuesまでキーをたどって開きます

図09: 図06で確認したGUIDを名前に持つ電源プランのキーを開き、DWORD値「ACSettingIndex」をダブルクリックします。

図10: ダイアログが起動したら値のデータを「1」に書き換えて<OK>ボタンをクリックします

図11: 以上でレジストリエディタによる操作は完了です。<×>ボタンをクリックして、レジストリエディタを終了させましょう

図12: <スタート>メニューの電源ボタンから、<再起動>を選択してコンピュータを再起動します

視覚的な変化はありませんが、ネットワークファイルを開いた状態でもスリープが実行されるようになります。ステップ05で開いたキーは、ステップ02で確認したGUIDを名前に持つキーですが、各電源プランで設定を行なう時は、各キーで設定を行ないましょう。また、ステップ06で参照したDWORD値「ACSettingIndex」は文字どおりAC電源用の設定ですので、バッテリ駆動中の動作も変更する場合は「DCSettingIndex」も合わせて編集してください。ちなみに、ご覧のとおり初期状態はデータ値が「0」のスリープを禁止した状態です。初期状態に戻す場合は、各データ値を「0」に書き戻します。

それでは、また次号でお会いしましょう。

阿久津良和(Cactus)