Windows7の不眠症対応
業務で使用していたWindowsXPが4月にサポート終了を迎え、Windows7をクリーンインストールして使用しはじめた。しかしそのときからこのWin7がスリープに入ってもすぐに起動してしまうという「不眠症」に悩まされていた。
ネットでこの現象を検索すると多くの方がこれに悩まされている様子。各種Q&Aサイトではとうとう解決にたどり着けないままスレッドが終了している例も多い。
この不眠症現象はいろいろな原因があるようだが、このたび当方で解決に至った方法はまだ報告が上がっていないものだったので、ここに解析過程を含めて書き留めておく。誰かの参考になれば幸い。
環境
DELL vostro (TM) 200 ミニタワー
Windows7 professional (クリーンインストール)
現象
スリープモードに入って1分後ぐらいに自動起動する。
原因がタスクスケジューラのアイテムにないことは確認済み
クリーンブートを試し、各種ソフトウェアが電源機能に干渉していないことは確認済み
外付けデバイスが電源に干渉していないことは (powercfgコマンドにて) 確認済み
解析
イベントビューワを起動
[windows]+r で開く窓に "eventvwr" と入力、または C:\Windows\System32\eventvwr.exe をエクスプローラでダブルクリック。
"Power-troubleshooter" のログを探す
左ペインで イベントビューワ → Windowsログ → システム を選択。ログの中から ソースがPower-troubleshooter であるログを探す。
この例では "2014/06/26 14:04:41" のログが該当し、「システムはスリープ状態から再開しました。」とある。
スリープを解除したイベントを探す
この例の場合、14:03:43 にスリープに入ったはずなのに 14:04:38 に何らかのイベントが発生し、それを契機にして 14:04:41 の上記 "Power-troubleshooter" が記録されている。
怪しいログを発見
14:04:38 から 14:04:41 の間のログメッセージで怪しそうなやつを探す。むう、 「TCP/IP NetBIOS Helper サービスは 実行中 状態に移行しました。」 というメッセージが。スリープ中にもかかわらず実行状態に移行したとなればこれがスリープを解除した張本人だろう。
原因は "TCP/IP NetBIOS Helper" サービス で間違いなかろう。
とはいえ
職場の環境ではNetBIOS Helperサービスは必須。このサービスを停止するわけにはいかない。
とはいえ NetBIOS Helper が自ずから活性化することなどないはずだ (そういう実装だとするとスリープ機能などありえない)。 NetBIOS Helper を活性化する何らかのトリガーがあるのではなかろうか、と踏む。
もしや
試しに、Ethernetケーブルを抜いた状態で hibernate し(スリープ状態にし)、PCが起きてくるかどうかを確認する。
結果、 5分待っても起きてこない 。
結論。Ethernetアダプタに入ってくるパケットを "TCP/IP NetBIOS Helper" サービスが拾い、そいつが スリープ状態を解除している。
対応
ネットワークアダプタが Wake on LAN を許容しているのが原因。当方はWake on LAN 機能など必要ないので、この機能をすべて無効にする。
コントロールパネル → ネットワークアダプタ → (該当デバイス) の右クリックから プロパティ を開き、Wake on LAN のチェックをすべて外す。
完了
めでたく不眠症が解決、よかった。
- 作者: 山近慶一
- 出版社/メーカー: 技術評論社
- 発売日: 2011/12/09
- メディア: 単行本(ソフトカバー)
- 購入: 16人 クリック: 246回
- この商品を含むブログ (16件) を見る