Windows8.1にして随分経ちました。セキュリティが固いOSですが、快適に使えています。
さて、Windows8.1にしてから当環境で発生していたにも関わらず放置していた問題がありあます。
それは「スリープ状態にしても深夜勝手にスリープが解除される」という問題です。
正確には「深夜3時~5時辺り」という時間にスリープ状態のパソコンが勝手に立ち上がっているみたいなのです。私は全く気づかず寝たままなのですが、朝起きるとパソコンが起動しっぱなしというのは電気代も勿体ないので解決策を探してきました。
内容は「Regular Maintenance」と「自動メンテナンス」という機能をどうにかするというものです。
症状
この問題はWindows8以降に起こる問題のようで、私はWindows8.1へアップデートした後に発生しました。
寝る前にはちゃんとスリープ状態にしたはずなのに、朝起きると隣に置いてあるメインのデスクトップパソコンが起動しているのです。すぐ仕事があるのでその時は電源ボタンを押してもう一度スリープ状態にさせいるのですが、電気代も勿体ないので何とかしたい問題です。
ただ、それ以外の害はなかったので先に「Windows8.1で外付けHDDがスリープする問題」の方を片付けていました。余裕がでてきたのでこちらにも着手した次第です。
原因を発見する方法
さて、こういったOSの起動などに関する問題には「イベント ビューアー」で「Windows ログ」を見るのが定石です。
「Windows ログ」の見方は下記の通りです。
- Windows8以降ならば、左下までマウスカーソルをもってきた後「右クリック」してメニューを出し、「イベント ビューアー」を選んでください。
この問題はWindows8以降特有の問題らしいですが、一応Windows7の場合も解説。
Windows7以前であれば、コントロールパネルの「管理ツール」から「イベント ビューアー」を選んでください。(Windows8以降でも同様の操作でイベントビューアーを開けます) - イベントビューアーが開いたら「Windows ログ」→「システム」と開きます。
ここで問題の情報を探します。
「Regular Maintenance」というタスクが問題みたい
ここで夜の0時~朝8時(寝ている時間)のログを調べてみます。
どこかにスリープを解除した原因のログがあるはず・・・
見つけました。どうやらこれのようです。「Regular Maintenance」というタスクがスリープを解除しているようです。
システムは低電力状態から再開しました。スリープ時間: 2013-12-01T14:58:14.389218300Zスリープ解除時間: 2013-12-01T20:59:15.962126700Zスリープ状態の解除元: タイマー - Windows は、スリープ状態の解除を要求したスケジュールされたタスク'NT TASKMicrosoftWindowsTaskSchedulerRegular Maintenance' を実行します。
SleepTime 2013-12-01T14:58:14.389218300ZWakeTime 2013-12-01T20:59:15.962126700ZSleepDuration 4835WakeDuration 460DriverInitDuration 316BiosInitDuration 1179HiberWriteDuration 7573HiberReadDuration 0HiberPagesWritten 349479Attributes 24593TargetState 4EffectiveState 5WakeSourceType 5WakeSourceTextLength 106WakeSourceText Windows は、スリープ状態の解除を要求したスケジュールされたタスク'NT TASKMicrosoftWindowsTaskSchedulerRegular Maintenance' を実行します。WakeTimerOwnerLength 52WakeTimerContextLength 18NoMultiStageResumeReason 0WakeTimerOwner DeviceHarddiskVolume2WindowsSystem32svchost.exeWakeTimerContext SystemEventsBroker
「Regular Maintenance」とは? 「自動メンテナンス機能」について
Windows8 以降、OSの動作パフォーマンスを低下させないために「自動メンテナンス」という機能が追加されました。この「自動メンテナンス」を実行するためのタスクが「Regular Maintenance」のようです。
これに関しては以下の記事が参考になるので、一部引用いたします。
Windowsスマートチューニング (242) Win 8編: 「自動メンテナンス」の自動実行を無効にする | マイナビニュース
http://news.mynavi.jp/column/windows/242/
さて、Windows 8には、OSの動作パフォーマンスを低下させないために「自動メンテナンス」という機能が追加されました。これは、毎日指定時間(初期状態では午前3時)のアイドル時に実行され、Windows Updateや(Windows Defenderによる)セキュリティスキャン、システム診断などが実行されるというもの。
~中略~
加えて自動メンテナンスを自動実行させるには、コンピューター未使用時にスリープを選択しなければなりません。シャットダウンした場合は実行されないため、次回起動時のアイドル時に実行されることになります。
http://news.mynavi.jp/column/windows/242/
これがスリープ解除の原因で確定ですね。
スリープ中であってもスリープを解除するような設定があり、これが有効になっていると標準設定で3時にスリープを解除しメンテナンスを実行するようです。ただ、スリープが解除されてメンテナンスが終われば勝手にまたスリープに戻るよう?なのですが、メンテナンスに時間がかかることもあるようで朝まで起動しっぱなしという状況になっているみたいです。
このメンテナンスですが、主な内容は下記のようなものだそうです。
- 更新プログラムのチェックとインストール
- セキュリティ スキャン、ウイルス定義ファイルの更新
- システムの診断
更新プログラムのチェックもしているようなプログラムなので、これ自体を無効化するのはちょっと問題ありそうです。なので、スリープが解除されないようにだけしてみましょう。
「自動メンテナンス機能」でスリープ解除しないように設定
「自動メンテナンス」は下記の方法で設定箇所まで行けます。
念のため、タスクスケジューラーの方でも確認してみました。
スリープから解除されないように設定し直されているようです。
まとめ
今のところ、これで深夜勝手に起動するようなことは無くなりました。
この「自動メンテナンス」ですが、アイドル時であれば定期的に実行しているようですので、スペックが低いパソコンだとこれにリソースを取られて動作が重くなるようなことがありようです。ですので、自動実行が嫌であればデメリットを理解して無効にするということもありです。
無効にする場合は「タスクスケジューラー」から「Regular Maintenance」を無効にすればOKです。ただ、定期的なメンテナンスが自動実行されなくなるので、今度は適期に手動で実行してみてください。