Windows 10 Ver.20H2の一般向け配信が開始されたのに
いまだにVer.2004が落ちてこないマシンがある
仕事柄、筆者宅には、Windows 10が動作しているPCが複数ある。Windows Insider Previewをインストールしているマシンもあるが、何台かは最新のWindows 10を入れている。その中には、Windows 10 Ver.2004がいまだに“落ちてこない”機種がある。すでに「October 2020 Update」ことWindows 10 Ver.20H2の一般向け配布が開始されているのに、Windows 10 Ver.1909のままなのだ。
機種によって配布が遅れている原因は「Safeguard Holds」と呼ばれる措置が原因だ。これは機能アップデートを実行した結果、障害が発生することをMicrosoft側で検出した場合に、同じ条件を持つマシンへの配布を止めるための機能だ。
Safeguard Holdsがかかっているマシンには、下の画面のようなメッセージが、「設定」の更新や「セキュリティ」→「Windows Update」に表示されることがある。ただし、これは必ず表示されるわけではない。
確実な事実は、Safeguard Holdsがかかっている間、Windows 10の機能アップデートはなされないということだ。しかし、毎月のセキュリティや品質アップデートはそのまま来る。今回問題なのは、秋の機能アップデートが開始されたのに、いまだ春の機能アップデートが落ちてこない機種が出ている点だ。いくつか条件はあるが、Modern Standbyのマシンが10月まではSafeguard Holdsされており、さらに一部のWANデバイス(LTEモデム)を装備した機種も最近まで同様だった。筆者のマシンはこれに引っかかっていたらしい。ちなみに、この状況はx86/x64だけでなく、ARM64のマシンでも同じのようだ。
このSafeguard Holdsという仕組みは昨年導入されている。Windows 10 Ver.1903以降の障害報告には、Safeguardという用語がときどき出現するが、Windows 10 Ver.1809以前の障害報告には出てこない。これは昨年のWindows Updateへの機械学習の導入と関係があるようだ。
2018年秋のアップデートで大型障害が発生し
Windows Updateに導入された機械学習機能
2018年10月の「October 2018 Update」(RS5)では、機能アップデートによりユーザーファイルが消失するという問題が発生し、配布が一時中断された。これまでのところWindows 10最大の障害と言ってもいいだろう。この障害では発生に条件があって、必ずしもすべてのマシンで起きなかったことから、原因究明や対応に時間がかかった。
機能アップデートは一般向け配布が始まったあと、Microsoft側で制御しつつ配布範囲を拡大していく。このため、個々のPCがアップデートされるまでには、数日から1ヵ月以上と差ができる。しかし、「設定」→「更新とセキュリティ」→「Windows Update」→「更新プログラムのチェック」ボタンを押した場合には、一定の確率で実行されやすくなる。
また機能アップデートに関しては、原則としてPCメーカー側の検証もあり、メーカーや機種を限定しての配布の可否を決定できると説明されていた。しかし世の中には、すでに存在しないメーカーの製品や自作PCなどもあり、そうしたマシンでは機能アップデートを止めることはなかったと思われる。
この問題に対応するため、Microsoftは昨年5月にWindows Updateに機械学習技術を導入することを発表している。Windows Updateでの機械学習は2つの領域で用いられている。1つはユーザーからのフィードバックなどを自然言語処理し、重大な障害を早期に発見して、対応の優先度を決定したり、実際に対策するというものだ。これにより、事例としては少数でも検出が可能になった。
もちろん実際の障害を直すのは人間の手でするほかないが、その優先順位を機械学習で決定しようということだ。Microsoftによれば、「重大度の高い問題の検出に要する時間を数日から数時間に短縮」したという。
もう1つは、Windows Updateの配布(Roll out)に関して、機械学習を使って、障害と対象システム(ハードウェア、ソフトウェア)の関係を細かく分析するという領域だ。
PCの世界では、同一機種であっても、アプリケーションや接続されているハードウェア、システムの設定などに違いがあり、ソフトウェア側から見ると、必ずしも「同一」とはならないことがある。実際に2018年秋の障害は、ユーザーがドキュメントなどの「Known Folder」を移動させていたかが発生要因に含まれていた。これは、PCの機種名などからは判定できない。障害における原因は千差万別。人手で分析することは困難だ。
実際に機能アップデートを止めるSafeguard Holdsとはなんなのか
Microsoftによれば、Windows Updateにおいて、障害が起こったマシンの「診断データ」をもとに「Safeguard Holds」を作成する。同じ条件を持つPCは、このSafeguard Holdsにより、機能アップデートが延期された状態になる。
おそらくSafeguard Holdsに対して設定されている条件には、機械学習などで推定、予測された情報を含んでいると思われる。そして、障害ごとにSafeguard IDが割り当てられ、Safeguardの条件を適合する可能性の高いPCへの機能アップデートが停止されることになる。PC内部では、自身にSafeguard Holdsがかかっているかどうかはわかっていると思われる(なので表示が可能)。
だったら、もう少し「生」の情報を出してほしいところだが、Microsoftはこういうとき、大抵は「ユーザーを混乱させる」として、情報をオブラートに包んだような形式にすることが多い。記事冒頭のメッセージも、どこにも「アップデートを止めている」といった表現はなく、「提供準備が整うと、このページに更新プログラムが表示されます」としか書いてない。
Safegurd Holdsは、Microsoftが認識している障害と関連づけられ、その問題が解決すると解除される。ただし、1つのPCが複数のSafeguard Holdsを抱えている可能性もある。該当マシンのすべてのSafeguard Holdsが解除された段階で、ようやく機能アップデートが実行される。
このことからわかるのは、機能アップデートの配布開始直後には“運悪く”障害が発生してしまうマシンがいくばくかあるということだ。しかし、そのおかげで同じ条件を持つ他のPCのアップデートが延期され、多くのユーザーが救われるわけだ。
もっとも、大抵のケースはWindows Insider Previewに参加しているユーザーのPCで発生しているのだろう。これはプログラム参加時にわかっているリスクである。ただし、時にはRS5のケースのように、一般向け配布が開始されてから判明する問題もある。これに対して、Microsoftは以前よりはスピードを落とし、一定時間内に実行されるアップデートの数を抑えて様子を観察しながら、段階的に増やしているようだ。
ただ、Safeguard Holdsは、Windows Update経由のアップデートだけしか阻止することができない。ユーザーはMedia Creation Toolを使って強制的にアップデートすることもできるが、このときにはSafeguard Holdsが効かない。つまり、アップデートにともなう障害が発生するかどうかは運次第。どうしても実行したいのであれば、後述のWindows 10リリース情報のページを見て、そこに報告されている障害が自分のPCに当てはまらないことぐらいは確認したほうがいいだろう。
また、障害内容によっては、Windows 10の再インストールは効果がないことがある。たとえば、特定のハードウェアに起因するものである場合などだ。なので、Safeguard Holdsが有効になっているからって、いろいろと設定をいじってみるのは特に意味は無いかもしれない。筆者も夏になっても20H1が来ないのはおかしいと、「このPCを初期状態に戻す」を実行してみたが何の効果もなかった。
この連載の記事
-
第458回
PC
Windows上でhostsファイルを活用する -
第457回
PC
IPv6アドレスは先頭を見ればどんな種類かわかる -
第456回
PC
あらためてIPv6基本のキ -
第455回
PC
Windowsで現在どのネットワークアダプタがインターネット接続に使われているかを調べる方法 -
第454回
PC
Windows 11 24H2では「デバイスの暗号化」の条件が変わり、より多くのPCでドライブが暗号化される -
第453回
PC
Windows 11 24H2の配布開始後もすぐにはやってこない Windows UpdateとSafeguard Holds -
第452回
PC
Windows 11 Ver.24H2が登場 Copilot+ PCとそうでないPCで実質Windowsが2つに分かれる -
第451回
PC
新しいWindowsサンドボックスではコマンドラインからの制御が可能に -
第450回
PC
ユニコードで文字数を数える方法 -
第449回
PC
WSLはプレビュー版でGUIでの設定が加わった! リリース2.3.xの新機能を見る -
第448回
PC
PowerShellで面倒なオブジェクトはPSCustomObjectに変換するのが早道 - この連載の一覧へ