UpdateOrchestrator が勝手にスリープを解除するときの解決法


久しぶりにの投稿です。長らく更新が無く申し訳ございません。
最近、そこまで忙しいというわけではないのですが、会社の方の売上が伸びたらいいな~なんて思って色々自分から行動している関係で結果的に時間をそっちに使っていて記事が書けない状態となっています。

時間がとれ次第記事を書いたり書き直したりしています。

さて、今回の記事は「勝手にスリープを解除する」問題、第三弾となります。
この問題発生しすぎじゃないですかね・・・Windowsはどれだけスリープ解除のタスクを用意しているのか。
以下が過去の事象となります。

今回は「UpdateOrchestrator」の「Reboot」というタスクが問題となってスリープ解除しているようです。
同様に解決できるか試してみましょう。

症状

午前3時30分ころ、どうやらパソコンのスリープが解除されて起動しているようです。
ただ、これは以前の症状と異なり「Windows10になったら発症した」「毎日確実に解除されるわけではない」という点が違います。マウスでは無さそうですし、さて誰が原因なのか。

原因を発見する方法

以前から同じ方法を使っていますが、こちらでも発見方法を書きます。

OSの起動などに関する問題には「イベント ビューアー」で「Windows ログ」を見るのが定石です。
「Windows ログ」の見方は下記の通りです。

  1. Windows8以降ならば、左下までマウスカーソルをもってきた後「右クリック」してメニューを出し、「イベント ビューアー」を選んでください。(Windows10でも同じ操作でできます。)

    イベントビューアー Win8

    Windows7以前であれば、コントロールパネルの「管理ツール」から「イベント ビューアー」を選んでください。(Windows8以降でも同様の操作でイベントビューアーを開けます)

    イベントビューアー イベントビューアー Win7前

  2. イベントビューアーが開いたら「Windows ログ」→「システム」と開きます。
    ここで問題の情報を探します。夜3時ころで、起動に関することなのでソース「Power-Troubleshooter」に絞っていけば見つかると推測。

    Windowsログ

「UpdateOrchestrator」の「Reboot」なるタスクが問題の様子

推測通り以下の様なログが残っていました。
今回は「UpdateOrchestrator」の「Reboot」というタスクが原因の様子。

問題のイベント
▲クリックで拡大

システムは低電力状態から再開しました。
スリープ時間: ‎2015‎-‎10‎-‎07T14:50:40.374848200Z
スリープ解除時間: ‎2015‎-‎10‎-‎07T18:29:32.016494600Z
スリープ状態の解除元: タイマー - Windows は、スリープ状態の解除を要求したスケジュールされたタスク
'NT TASK\Microsoft\Windows\UpdateOrchestrator\Reboot' を実行します。
SleepTime 2015-10-07T14:50:40.374848200Z
WakeTime 2015-10-07T18:29:32.016494600Z
SleepDuration 1914
WakeDuration 516
DriverInitDuration 340
BiosInitDuration 1445
HiberWriteDuration 11985
HiberReadDuration 0
HiberPagesWritten 493319
Attributes 24593
TargetState 4
EffectiveState 5
WakeSourceType 5
WakeSourceTextLength 98
WakeSourceText Windows は、スリープ状態の解除を要求したスケジュールされたタスク
  'NT TASK\Microsoft\Windows\UpdateOrchestrator\Reboot' を実行します。
WakeTimerOwnerLength 52
WakeTimerContextLength 18
NoMultiStageResumeReason 0
WakeTimerOwner \Device\HarddiskVolume2\Windows\System32\svchost.exe
WakeTimerContext SystemEventsBroker

スリープ解除しないように設定

これはどうやらWindows Update関連のタスクのようです。
最近のWindowsはスリープ状態ならそれを解除してWindows Updateを自動で適用するようです。

全Windowsユーザーのセキュリティを底上げする処置だとは思うのですが、勝手に起動してアップデートして再起動して、とやられると作業中のデータが消えるので、せめて勝手に解除しないように簡単に切り替えできてほしいというのが本音です。

対処法ですが、前回と同様にタスクが勝手にスリープ解除しないように設定する方法です。

  1. タスクスケジューラを開く

    「コントロール パネル」から「管理ツール」を開いて「タスク スケジューラ」を開きます。

  2. Rebootの無効化
    ▲クリックで拡大

    イベントビューアーより下記の場所にタスクが存在することがわかっていますので、そこまで調べに行きます。

    NT TASK\Microsoft\Windows\UpdateOrchestrator\Reboot

    「Reboot」の「条件」で「タスクを実行するためにスリープを解除する」のチェックを外します。
    うまくいけばこれでスリープ解除現象は一度収まるはず。

スケジュールの変更による対処

これで一時的には症状が収まるようですが、この設定どうやら上書きされることがあるようです。
スリープ解除をOFFにしても、WindowsUpdateの内容によっては勝手にチェックを入れ直されることがあるようです。

ということなので、タスクの実行時間を変えて自分がパソコンを操作している時間帯などで設定してみるという対処法も一緒に行うとよいと思います。受身的な対処法ですが仕方ありません。

時間帯の変更
▲クリックで拡大

「トリガー」で実行時間が確認できます。「トリガーの編集」で実行する時間帯を変更しました。21時くらいならとりあえずパソコンを操作しているであろうと思ったので私はこの時間にしました。

その他の停止箇所

場合によっては「\Microsoft\Windows\WindowsUpdate」にある「Automatic App Update」「Scheduled Start」の2つのタスクも同様の処置をする必要があるようです。

私のところではすでに「タスクを実行するためにスリープを解除する」のチェックは外れていましたが、環境によってはこれも影響するみたいなので一度確かめてみると良いでしょう。

WindowsUpdateの再起動時間を変更する

これで一応勝手に起動することは無くなってると思います。
ただ、設定が元に戻りWindowsUpdateが原因で起動してしまった場合に備え、WindowsUpdateによって勝手に再起動しないよう、再起動する時間帯を任意に設定してみたいと思います。(勝手に再起動されると作業データが消えてしまうため、パソコンを確認できる時間帯へ設定)

  1. スタートボタンから「設定」を選びます。

    設定

  2. 「更新とセキュリティ」を選びます。

    更新とセキュリティ
    ▲クリックで拡大

  3. 「Windows Update」から「詳細オプション」を選びます。

    詳細オプション
    ▲クリックで拡大

  4. 更新プログラムのインストール方法を「再起動の日時を設定するように通知する」に設定します。

    「再起動の日時を設定するように通知する」
    ▲クリックで拡大

  5. 1つ戻ってWindows Updateの設定で「再起動の時刻を設定してください」の時刻を任意の時刻に設定します。パソコンを操作している時間帯、あるいは再起動がかかる前に気付ける時間帯にするとよいでしょう。

    再起動の時刻
    ▲クリックで拡大

まとめ

このタスクが原因の場合、完全に停止させることはできないかもしれません。

WindowsUpdateにより設定を元に戻されることがあるようなので、あまり気分のよいものではありませんが、定期的に設定を確認してみるしかなさそうです。