Windows 10 にて Windows Update に失敗し、なおかつ更新プログラムの適用状態が「保留中」のままになってしまった場合の解決方法を紹介したページです。

いわゆる「再起動ループ」の状態を解消する方法の一つです。

このページでは、このような状態になった場合の「保留中の更新プログラムを削除する手順」を紹介しています。

実際の手順1 (前準備の段階)

再起動ループ発生などの「かなり重症なケース」を想定し、スタートアップ修復に失敗した所から解説をはじめています。

起動できない状態からコマンドプロンプトを起動する

Windowsが起動に失敗した状態
スタートアップ修復
▲クリックで拡大
「詳細オプション」を選択します。
※ Windows回復環境を起動が起動しない場合は、システム修復ディスクやインストールメディアを利用してもOKです。

「オプションの選択」画面
「オプションの選択」画面
▲クリックで拡大
「トラブルシューティング」を選びます。

トラブルシューティング
トラブルシューティング画面
▲クリックで拡大
この画面で「詳細オプション」を選びます。

詳細オプション
詳細オプション画面
▲クリックで拡大
「コマンドプロンプト」を選びます。
※ ここでPCが再起動されます。
※ ログインするアカウントのパスワード入力が必要です。

コマンドプロンプトの起動手順は以上です。
続いて、Windowsシステムが保存されたドライブがどこにあるかを確認します。

スポンサー リンク

Windows のシステムドライブを確認する

回復環境で起動した場合、Windowsシステムが「Cドライブ以外」になっている事があります。以下手順でWindows のシステムドライブの場所を確認します。

※この作業はメモ帳を使うと便利です。
コマンドプロンプト上で「notepad」と入力します。

コマンド実行例

  • ドライブレターを確認する
    ▲クリックで拡大
    メモ帳が開いたら「名前を付けて保存」>「PC」を選ぶ。
  • 上図の場合、
    Cドライブがは500MBの回復領域、
    Dドライブが Windows のシステム領域であると分かります。
  • この後の手順も、メモ帳を使うと手間が省けて便利です。

以上が準備段階です。

実際の手順2 (保留状態の確認)

ここからが実際の手順です。
以下すべて、コマンドプロンプトで操作を行います。

注意: 以下すべて「Windowsシステム が Cドライブの場合」のコマンドを掲載しています。必要に応じて「C:\」の部分を書き換えて利用してください。

保留状態となったレジストリの値を修正する

この項目は、「保留中の更新プログラム」がレジストリ値に「実行すべき」とマークされた状態を解除するための操作です。
(実際に保留中の更新プログラムを削除する操作は次項)

1. レジストリをロードする

  • コマンド
    reg load hklm\temp C:\windows\system32\config\software
    ※windowsフォルダがCドライブの場合
  • コマンド実行例
    reg load hklm\temp C:\windows\system32\config\software
    ▲クリックで拡大

2. 以下でレジストリキー「SessionsPending」を削除する

  • コマンド
    reg delete “HKLM\temp\Microsoft\Windows\CurrentVersion\Component Based Servicing\SessionsPending” /v Exclusive
    ※レジストリ値が存在しない場合は、そのまま次の手順に進んでOK。
  • コマンド実行例
    reg delete “HKLM\temp\Microsoft\Windows\CurrentVersion\Component Based Servicing\SessionsPending” /v Exclusive
    ▲クリックで拡大
    「レジストリ値 Exclusive を削除しますか?」と聞かれるので「y」を入力
    • 実行すべき保留中の更新プログラムがあった場合の結果
      実行すべき保留中の更新プログラムがあった場合「この操作を正しく終了しました」とメッセージが出る
      ▲クリックで拡大
      「この操作を正しく終了しました」とメッセージが出ます
    • なかった場合
      実行すべき保留中の更新プログラムがなかった場合「指定されたレジストリ キーまたは値が見つかりませんでした」とメッセージが出る
      ▲クリックで拡大
      上図のようなエラーが出ます。
      この場合、「Windows が起動できない原因」は、「更新プログラムの適用失敗」ではないかもしれません。

3. レジストリをアンロードする

  • この操作は必ず行っておきましょう。
  • コマンド
    reg unload HKLM\temp
  • コマンド実行例
    reg unload HKLM\temp
    ▲クリックで拡大

保留中になっている更新プログラムを特定する

まず更新プログラムのリストを確認する

  • コマンド
    Dism /Image:C:\ /Get-Packages >>C:\result.txt
    ※赤文字部分を付け足すとテキスト形式で出力できる。
    ※保存場所やファイル名は任意でOK。
  • コマンド実行&メモ帳で確認
    Dism /Image:C:\ /Get-Packages >>C:\result.txt
    ▲クリックで拡大
    • 「notepad」でメモ帳が起動できる。
    • 状態 : インストールの保留中  または State = Install Pending となっているパッケージを探す
    • パッケージIDをコピーし、次のコマンドに利用する
    • 補足: コマンド実行例 (テキスト出力なしの場合)
      Dism /Image:C:\ /Get-Packages
      ▲クリックで拡大

ここまでの手順で、Windowsが起動できなくなっている原因となった更新プログラムの特定は終了です。続いて、この更新プログラムを削除します。

保留中の更新プログラムを削除する

  • コマンド
    dism /image:C:\ /remove-package /ScratchDir:C:\ /PackageName:Package_for_RollupFix~31bf3856ad364e35~amd64~~16299.248.1.17※ 上記はWindows システムが Cドライブだった場合。
    ※ 赤文字部分は前述のコマンドで 調べたパッケージIDを使う
  • コマンド実行例
    メモ帳でDISMコマンドを作成
    ▲クリックで拡大
    DISM コマンドが正常に終了すると、上図のような表示になります。

ここまでの手順を行なえば、とりあえず Windows は正常起動できるようになっているはずです。
※ Windows Update の失敗が「繰り返される」原因を取り除いただけ。
※「失敗の原因」そのものは解決できていない場合がある。

復旧手順はここまで

(注意: 次項を読んでから実行してください)
上記の手順をすべて終了した後は、コマンド プロンプトを「X」で閉じ、Windows 回復環境 の画面に戻ります。
[続行] をクリックして回復環境を終了
▲クリックで拡大
ここで [続行] をクリックして回復環境を終了させ、Windows を起動してみます。

注意: Windows の起動に時間がかかるケースがある

Windows を起動する前に、できれば最後にもう一手間かけておきます。

手元で何度かこの削除手順を試したところ、PCの再起動に異様に時間がかかったり (手元のテストでは最大40分くらい)、PC再起動後の Windows Modules Installer Worker などメンテナンス系サービスの挙動が通常よりかなり激しくなる (極端にPCが重くなる) ケースが発生しました。

この「時間がかかる/PCが重くなる問題」は、「DISM /cleanup-image /startcomponentcleanup」もしくは「自動メンテナンス」で解決できるようです。

コンポーネントのクリーンアップを行う

以下の手順を実行します。

  • コマンド (Windows 回復環境の場合)
    • DISM /image:C:\ /ScratchDir:C:\ /cleanup-image /startcomponentcleanup
  • コマンド (Windows が起動した後で Windows 上で実行する場合)
    • DISM /online /cleanup-image /startcomponentcleanup
      ※ 自動メンテナンスの際に自動で実行されます。
  • コマンド実行例
    DISMのコンポーネントクリーンアップ
    ▲クリックで拡大
    • 補足: 自動メンテナンスを「手動実行」する場合
      自動メンテナンスの場所
      ▲クリックで拡大
      「コントロールパネル」>「セキュリティとメンテナンス」>「メンテナンス」
      ※実行中はPCが重くなります。

問題が発生した環境で (イメージから復元してもう一度更新プログラムを削除しなおして) この startcomponentcleanup コマンドを試してみると、上記「PC再起動と再起動後の問題」が軽減できることが確認できました。
ただし、このコマンドもメチャメチャ時間がかかる (40分かかった) ので、やってもやらなくても同じかもしれません。

このページの手順紹介はここまで

無事 Windows が起動でき、「PCが重い」状態が終了した後は、サイト内「Windows updateができない・失敗をくりかえす時の一般的な対処方法」などの手順で Windows Updateが失敗した原因を取り除き、問題となっている 更新プログラムの適用を試してみます。

このページの解説は以上です。

外部参考リンク