2019年6月の定例更新の際、検証用仮想マシンの1台が更新プログラムのインストールエラーで繰り返し失敗する場面に遭遇しました。筆者がいつもしているように“おまじない”のようなコマンドラインで解決しようとしましたが、問題が発生したのは、そうはさせてくれない「Windows 10 Sモード」だったのです。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
複数台、複数バージョンのWindows 10やWindows Serverを管理していると、年に数回は「Windows Update」で原因不明、解決困難なエラーに遭遇することがあります。本連載でも何度か取り上げてきたように、Windows Server 2016の更新で発生することが多く、正常化できることも、できないこともありました。
筆者の環境では、2019年6月12日の定例セキュリティ更新の際、幾つかのバージョンでエラーが目立ちました(ほとんどは再試行で解消しました)。しかし、1台だけ再試行で解消しないエラーに遭遇しました。そのPC(実際には仮想マシン)は「Windows 10 Pro(x64)バージョン1809、Sモード」を実行していました。5月末のオプションの累積更新までは何の問題もなく、更新できていたPCです。
その問題とは、2019年6月のセキュリティ累積更新プログラム「KB4503327(ビルド17763.557)」のインストールが「状態:インストール中 - 100%」の後、最後の最後にエラー「0x80070057」で終了し、何度繰り返しても、再起動しても、「Microsoft Updateカタログ」からダウンロードして手動インストールしても失敗を繰り返すというものでした(画面1)。
筆者はこれまで、Windows Updateの問題に遭遇しても「C:\Windows\SoftwareDistribution」の再作成や、コンポーネントストアである「C:\Windows\WinSxS」の修復、Microsoft Updateカタログからダウンロードした更新プログラム「Microsoft Updateスタンドアロンインストーラー(MSU)」のオンライン/オフラインインストールなどの手段で、ほとんどの場合は正常化してきました。
どうしても問題を解消できずに、再インストールしたこともありますが、それ以上時間をかける価値がなかったからです(評価環境なので)。Windows Updateのエラーを解消できるかもしれないコマンドライン操作については、以下のMicrosoftのサポート情報で説明されています。
今回の問題は、「Windows 10 Sモード」で発生しました。Windows 10 Sモードは、Windows標準のアプリ(「ペイント」や「Internet Explorer」など、組み込み済みのWin32アプリも利用可能)やツールの他は、「Microsoftストア」から取得したアプリだけをインストール、実行できるロックダウンされたモードです。「コマンドプロンプト(cmd.exe)」や「Windows PowerShell」「レジストリエディター(regedit.exe)」の使用は制限されています(画面2)。バッチファイルやPowerShellスクリプトも実行できません。この他、Windows Script Host(WSH)のスクリプトエンジンやWindows Subsystem for Linux(WSL)のシェル環境、「REG」コマンドや「WMIC」コマンドの使用も制限されています。
つまり、Windows Updateのエラー解消のためのコマンドライン操作が一切実行できないのです。Windows 10 Sモードの制限は、「セーフモード」で起動した場合でも解除されることはありません。ちなみに、「セーフモードとコマンドプロンプトを有効にする」で起動した場合でも、「セーフモードを有効にする」と同じ環境が起動し、コマンドプロンプトが起動することはありません。
Windows 10 Sモードの場合、オンライン(通常起動)で実行できる対処としては、「更新とセキュリティ」→「回復」→「トラブルシューティング」から開始する「Windows Update」トラブルシューティングツールくらいになります。しかし、今回のケースでは、トラブルシューティングツールは「問題を特定できませんでした」と表示し、役に立ちませんでした。
Windows 10 Sモードでもコマンドライン環境からシステムを操作する方法が1つだけあります。それは、「Windows回復環境(Windows Recovery Environment:WinRE)」です。WinREは、ローカルディスクの回復パーティションにインストールされている「Windowsプレインストール環境(Windows Pre-install Environment:WinPE)」ベースのコマンドプロントを持つトラブルシューティング環境です。現在のWindowsインストールとは別のWindowsインスタンスとして起動するので、Windows 10 Sモードの制限はかかりません。正常起動しない場合は、複数回起動に失敗した後に、WinREに進むことができます。
WinREを開始するには「設定」アプリの「更新とセキュリティ」→「設定」→「回復」を開き、「PCの起動をカスタマイズする」の下にある「今すぐ再起動」をクリックします。または、[Shift]キーを押しながら、通常の再起動操作を行います。すると、「オプションの選択」画面が表示されるので、「トラブルシューティング」→「詳細オプション」→「コマンドプロンプト」の順番に選択します(画面3)。
これで次回起動時にWinREが起動し、ローカル管理者のパスワードを入力してコマンドプロンプトを開きます(「BitLocker」が有効化されている場合は、起動時にロックの解除操作が要求されます)。
Copyright © ITmedia, Inc. All Rights Reserved.