Windowsの電源管理
前回は、PCの電源管理の歴史を紹介した。今回は具体的な手順を紹介する。
●Windowsの電源管理
Windows XPまでは電源管理と言えばノートPC用と決まっていた。しかし、Windows Vista以降はデスクトップPCでも積極的に電源管理を行なう。
CPUは事実上停止するが、PCには最小限の電力供給を行ない、メモリ内容を保持する状態が「スリープ」である(以前「サスペンド」と呼んでいたものとほぼ同じ)。スリープ状態から動作状態の復帰は非常に高速で、通常は数秒以内である。ただし、スリープ中に完全に電力供給が停止してしまうと復帰できないため、バッテリ容量が一定以下になるか、一定時間(既定では18時間)が経過すると自動的に休止状態(後述)に移行する(図1)。
CPUを含め、すべての電力供給を完全に停止した状態が「休止」である(以前「ハイバネート(冬眠)」と呼んでいたものと同じ)。休止状態に移行するときは、現在の動作状態やメモリ内容をハードディスクに書き出す。復帰するときは保存した状態をハードディスクから読み出すため、スリープよりは多くの時間がかかる(十数秒から数十秒程度)。 ノートPCにはバッテリがあるため、スリープに移行してもすぐに電源供給が停止することはない。バッテリ残量はOSから取得できるので、スリープ状態を維持できないなら休止状態に移行することもできる。ノートPCではスリープを使っていれば安心だ。
しかし、デスクトップPCでは電源が停止すると即座にメモリ内容を含めすべての状態が失われる。そこでWindows Vistaからは、スリープと休止状態を組み合わせた「ハイブリッドスリープ」が導入された。
ハイブリッドスリープでは、休止状態をディスクに保存してからスリープに移行する(図2)。スリープ中に電源が停止しなければ、スリープから高速に復帰できる。もしスリープ中に電源が停止しても、休止状態が保存されているのでそこから復帰できる。
●設定手順
電源管理機能は、コントロールパネルから簡単に設定できる。個人で設定する場合はこれで十分だろう。
Windows Vista以降の企業内クライアントの場合は、Active Directoryのグループポリシーを使って一括設定ができる。 Windows XPの場合はグループポリシーではほとんど設定できないが「グループポリシーの基本設定クライアント側拡張機能」を使えば多くの設定が可能になる。「基本設定」にはWindows Vista/7用の電源設定拡張も含まれているので、すべてのクライアントに対して利用することをおすすめする。
「基本設定クライアント側拡張機能」は「基本設定」あるいは「クライアント側拡張」とも呼ばれ、Windows Server 2008からの新機能である。Windows 7では標準で利用できる他、Windows VistaやWindows XP用のモジュールがマイクロソフトのWebサイトからダウンロードできる。
「基本設定」は、Windows Server 2008以降のグループポリシー管理ツールと統合されているため、通常のグループポリシーと同様に設定できる。 その他、いくつかの構成方法があるので、詳細はマイクロソフトのWebサイト「Windows PC節電策」を参照してほしい。
●スリープをめぐるトラブル
Windows Vista以降、スリープ関連のトラブルは激減しているが、残念ながら皆無というわけではない。
最も多いトラブルは、スリープに移行しない、あるいはスリープから復帰時に一部のデバイスが動作しないというものだ。これは、一部のデバイスがスリープモードへの移行を拒否することで起こる。対策としては、最新のデバイスドライバにアップデートすることだ。
ただし、どのデバイスがスリープ移行を拒否しているかを見極めるのは難しいし、最新のものが絶対にスリープをサポートするとも限らない。筆者のPCでは、スリープ移行後、即座にスリープから自動復帰してしまうというトラブルがあった。現在では解消しているが、何が原因で直ったのか分からない。おそらくWindows Updateによるドライバ更新の結果だと想像している。
アプリケーションやサービスがスリープを拒否することもあるようだが、クライアントPCではあまり多くない。ほとんどはドライバの問題だと考えてよいだろう。
かつて、Windows Updateによる自動更新によるトラブルは結構多かった。そのため、今でもWindows Updateを嫌う人は多いのだが、ここ数年は大きなトラブルはほとんどない。筆者の個人PCはWindows Updateを無条件に適用しており、問題が出たことはない。残念ながらトラブルが皆無というわけではないので、全員に無条件におすすめするわけにはいかないのだが、ぜひこまめにチェックして欲しい。