Windows 10はバージョン1607からアクティブ時間という概念が導入され自動再起動を止めることができなくなりました。
しかも、企業向けのPC管理手法でも再起動を止めることはできません。
ただし、原因となるタスクを無効とすることで止められますが元に戻せなくなります。
(御注意) この記事ではWindows本来の設定を強制的に変更しています。そのため元に戻すのは困難なのでやらないでください。
この記事は自動再機能の動作解明と根源的な対処を目的としています。そのため一般的には下記の記事での対処をお勧めします。
Windows Updateの3つの各段階での問題
Windows Updateは3つの段階に分けられます。
- 更新プログラムのダウンロード
- 更新プログラムのインストール
- 実行中のプログラムを更新するための再起動
各段階での問題について順に説明します。
更新プログラムのダウンロード
Windowsパソコンはキャリアと組んでモバイル通信対応の機種を出しても売れないので、殆どのメーカーはWi-Fiモデルしか販売していません。そのためモバイルで使う場合は、モバイルルーターかスマートフォンのテザリング経由で通信を行います。
この通信方法はWi-Fiを使うため何も設定しないとWindows 10は従量制課金接続とは判断せず、大容量の更新ファイルをダウンロードしてしまいます。
Windows 10では更新ファイルのダウンロードを止められないためWi-Fiごとに従量制課金接続であることを指定する必要があります。
また、安定しているドライバーの更新も行われるため、逆に不安定になることもあります。ドライバーの更新を除外することもできますが、不具合が直ることもあり、あまりお勧めできません。不具合が発生したものだけを除外した方がよいでしょう。
更新プログラムのインストール
従来のWindowsでは機能修正プログラムとセキュリティ対策プログラムは別々に配信されていたため、ネットで騒がれているバグ有り更新プログラムを除外することも可能でした。
Windows 10は当初からWindows 7/8.1は2016年10月からこれらの更新プログラムは1つの累積的な更新プログラムというパッケージとして配信されています。そのため更新プログラムを選択することができなくなりました。(企業などでWSUSを使う場合は選択可能)
したがって、自動的にインストールされることは止めてもあまり意味がありません。
再起動
Windows 10 バージョン1511までは従来のWindowsと同様に更新プログラムをインストールした後の動作を「設定」アプリから指定できるようになっていました。しかし、Windows 10 バージョン1607からはアクティブ時間という概念が導入され、パソコンの連続使用は12時間以内に強制されるようになりました。
これに対しては反感が大きく、Windows 10 Insider Preview Build 14942ではHomeエディション以外については18時間に制限を緩和しました。それでもまだ不満はくすぶっているようです。
Windows Updateはコントロールできないのか
結論から言えば、Windows 10 バージョン1607でもWindows Updateはコントロール可能ですが従来の方法は使えません。
従来の方法についてはマイクロソフトのサイトに説明があります。
- グループ ポリシーまたはレジストリの設定を使用して自動更新を構成する方法(Microsoft)
ここで説明されていることすべてが使えないわけではありません。Windows Updateの3段階のダウンロードとインストールまではコントロールできます。しかし、再起動に関してはどのポリシーも無視されます。
何通りか試してみたのですが、「自動更新を構成する」というポリシーも「スケジュールされた自動更新のインストールで、ログオンしているユーザーがいる場合には自動的に再起動しない」というポリシーも機能はしていました。
しかし、定期メンテナンスが始まって再起動が必要な状態にあると、どんな状態であろうと再起動されます。
通常、ポリシーではユーザーデータが失われる可能性がある状態、例えばアプリケーションを開いたままで変更が保存されていない状態では再起動されることはありません。
ところがWindows 10ではデータが失われようと、決められた時刻になると再起動を始めます。もちろん保存していないデータは失われます。
再起動の犯人は、UpdateOrchestratorにある「Reboot」というタスクです。ならばそのタスクを止めればよいのですが、いろいろなサービスやプロセスが再起動のタスクを再登録してしまうので、単に止めただけではダメなのです。
検索してみたところ解がありました。タスクへのアクセスを制限し、新たなタスクの登録を阻害する方法です。詳細はこちらのサイトを参照願います。
自動再起動を止める手順
最初に書いたように元に戻せなくなるので、やらないようにしてください。一般向けとしてこちらの記事を参照願います。
サイトの説明ではタスクの所有者の変更をツールで簡単に行っていますが、ツールがうまく動作しないため通常の方法で説明します。
1.Rebootタスクの無効化
「コントロールパネル」の「システムとセキュリティ」をクリックします。
「管理ツール」グループの「タスクのスケジュール」をクリックします。
左側を開いて、[タスクスケジューラ(ローカル)][タスクスケジュールライブラリ][Microsoft][Windows][UpdateOrchestrator]を選択します。
中央上部で[Reboot]を選択し、右下の「無効化」をクリックします。
「無効」になったことを確認して右上の[X]で「タスクスケジューラ」を閉じます。
2.Rebootタスクのアクセス権変更
エクスプローラーで「C:\Windows\System32\Tasks\Microsoft\Windows\UpdateOrchestrator」を開きます。
途中でアクセスが拒否された場合は「続行」をクリックして開いてください。
「Reboot」を選択し、リボンの「プロパティ」をクリックします。
「Rebootのプロパティ」が開きますので「セキュリティ」タブに切り替えます。
「詳細設定」をクリックします。
まず、所有者を変更します。所有者の右の「変更」をクリックします。
「選択するオブジェクト名を入力してください」とある部分に自分のアカウント名を入力します。
ローカルアカウントの場合はアカウント名、Microsoftアカウントの場合はメールアドレスを入力します。
間違いが無ければ「名前の確認」をクリックすると「コンピューター名¥アカウント名」と表示されますので「OK」をクリックして閉じます。
次に左下の「継承の無効化」をクリックします。
「継承のブロック」が表示されるので「このオブジェクトから継承されたアクセス許可をすべて削除します。」をクリックします。
残っているアクセス権を一つずつ選択してすべて削除します。
次に「追加」をクリックします。
「プリンシパルの選択」をクリックします。
先ほどと同じように自分のアカウントを入力して「名前の確認」をクリックし、「OK」をクリックして閉じます。
「基本のアクセス許可」で「フルコントロール」にチェックを入れるとすべてにチェックが入ります。「OK」をクリックして閉じます。
これで「Reboot」タスクへのアクセスは自分しか行えなくなります。「OK」をクリックして閉じます。
「Windowsセキュリティ」が表示されるので「はい」をクリックして閉じます。
「Rebootのプロパティ」が残っているので「OK」をクリックして閉じます。変更が反映されていませんが、
再度、「プロパティ」をクリックして開くと、
変更したように自分だけにアクセス権があることが分かります。「キャンセル」をクリックして閉じます。
以上で、Windows 10による自動再起動は行われなくなります。
「UpdateOrchestrator」には他にもいろいろタスクがありますが、Rebootタスクは再起動させるためのタスクであり、更新のインストールは別のタスクにより従来通り行われます。
今後の動向
Microsoftはどうしても自動再起動は譲れないようです。更新プログラムをインストールしても再起動して実行中のプログラムを置き換えないと意味が無いためです。
そのためユーザーが問題にしているのは再起動のタイミングであると思い込んでいるようです。
これはWindows 10 バージョン1607 OSビルド 14393.321におけるポリシーですが、「Specify deadline before auto-restart for update installation」という翻訳されていないポリシーが追加されています。再起動を遅らせる設定は7日先までしか指定できませんが、このポリシーを変更することで14日まで延ばせるようになります。
また、こちらはWindows 10 Insider Preview Build 14946のポリシーですが更にポリシーが追加されています。
- Specify active hours range for auto restarts
- Configure auto-restart reminder notifications for updates
- Turn off auto-restart notification for update instration
- Remove access to use all Windows Update features
- Configure auto-restart required notification for updates
- Configure auto-restart warning notifications schedule for updates
Microsoftは自動再起動の通知(notification)に気付かないことが問題だと考えているようです。またWindows Update自体に触れなくすることも考えているようです。
まとめ
Rebootタスクを検索すると、午前3時にコンピューターが自動で立ち上がる原因とされています。しかし更新の最後にインストールを完了させるための再起動を行うタスクというのが正しい解釈です。
そのためRebootタスクを封じれば自動再起動はされなくなりますが、元に戻すのは非常に困難なので通常はやらない方がよいでしょう。
Microsoftも改善策を模索しているようなので、Windows 10 バージョン1607以降ではアクティブ時間をうまく設定して逃げるのが得策と思われます。
アクティブ時間を自動でずらすことで自動再起動を防げることも確認しています。
(2016/10/27 全面的に修正しました)
コメント
そんなに難しく考えなくてもWindows updateサービスを無効にするだけで良いと思います。
updateしたい時だけ開始すれば良いですから。
コメントを頂き、ありがとうございます。
言われるようにWindows Updateを止めることは簡単ですが、
・Windows Updateを止めること
・再起動を止めること
この2つは大きく違います。
Windows Updateを止めた場合、ゼロデイ攻撃に対して危険な状態になるため、常に更新情報に注意しておく必要があります。また、Windows Updateを再開してダウンロード後に適用となると長時間、PCを使えなくなります。
一方、再起動を止めた場合、可能な範囲での更新は完了しており、再起動することで使用中のファイルの置き換えが完了するため、比較的短時間で終了します。PCの利用の終了時に更新することでPCを使えなくなる時間を取られることもありません。
したがって、Windows Updateサービスを止めることは好ましくありません。
Win10 Proでポリシーも設定したのに再起動されてたので検索したらここにヒットしました。
やはりポリシーは無視されるのですね。
ここに書かれていることを実行すると、今後のアップデートで支障が出そうなので今回はやめておきます。
ソフトを立ち上げてるのに強制再起動ってありえないです。
ダイアログでOKするまで再起動しないってのが普通の運用だと思うのですが、なぜそれをやってくれないのか疑問です。
コメントを頂き、ありがとうございます。
試しにソフトで保存していない状態にしておいたのですが再起動されました。普通はダイアログが表示されブロックされるのですが、それを回避する仕組みを組み込んだようです。
ユーザーデータの損失よりセキュリティの脅威による損失の方が大きいと言いたいようですが、それは企業向けの考えで、個人ではユーザーデータの方が重要だと私は考えます。
デフォルトでシステムドライブが暗号化されており、復号できなくなることでのユーザーデータ損失より情報漏えいの方が損失が大きいという考えと同じです。
多くの人が困っていますので、そのうちに何かしらの対策が出てくると思います。
それまではアクティブ時間で逃げるしかありません。