この記事ではDISMを利用した、Windows 11 バージョン 24H2 の更新プログラム『KB5063878』のアンインストール方法について解説していきます。
何がおこっているかについては大体の人が知っていると思うので、この記事では触れません。

注意事項
KB5063878はセキュリティ更新プログラムです。
アンインストールすると、この更新プログラムが修正したセキュリティの脆弱性が未修正の状態に戻ってしまいます。
不具合の影響範囲も限定的である為、どうするべきか自身でよく検討した上で、自己責任でアンインストールしてください。
アンインストール方法
一般的に、Windowsの更新プログラムは「設定」の「更新の履歴」からアンインストールできます
が、KB5063878は標準的な方法では完全に削除できない可能性があります。
そこで、本記事ではより確実に更新プログラムを削除するため、DISM (Deployment Imaging Service and Management Tool)
を使用する方法をご紹介します。
SSU、LCUとは
DISMを使ったアンインストール方法を理解するために、まずはSSUとLCUについて簡単に説明します。
SSU (Service Stack Update):
SSUは、Windowsの更新プログラムを正しくインストールするために必要な基盤となる更新プログラムです。
Windowsの更新プロセスにおける「サービススタック」を更新する役割を担っています。
簡単に言えば、更新プログラムを適用するための「準備ツール」のようなものです。
SSUはシステムの中核的な部分であるため、一度インストールすると通常はアンインストールできません。
LCU (Latest Cumulative Update):
LCUは、その名の通り「最新の累積更新プログラム」です。
セキュリティパッチ、バグ修正、および非セキュリティ更新プログラムがすべて含まれた単一のパッケージです。
Windowsを最新の状態に保つための主要な手段であり、システムに新たな機能や修正を適用する役割を担っています。
こちらはアンインストール可能です。
KB5063878はこのSSUとLCUが統合されたパッケージです。
その為、両方のパッケージを対象とする「設定」からのアンインストールではSSUの不可逆性が原因で
処理が失敗するか、または不完全な状態で終了するという結果を招きやすくなっています。
統合型アップデートパッケージからLCUのみを正確に削除するには、DISMを使用する手法が唯一の現実的な選択肢となります。
これは余談ですが、Microsoftが推奨している削除方法でもあります。

パッケージ名の確認
まずはインストール済みパッケージのリストを取得し、『KB5063878』の正確なパッケージ名を調べます。
Windowsマークを右クリックし、ターミナル(管理者)を実行。
下記のコマンドを実行し、KB5063878のビルド番号に一致するパッケージの一覧を表示。
Get-WindowsPackage -Online | Where-Object {$_.PackageName -match "4946"}

累積更新 (LCU) は必ず RollupFix という名前で登録されているので、表示されたパッケージの一覧から RollupFix が含まれているものを探します。
今回の場合は一番下に表示されている Package_for_RollupFix~31bf3856ad364e35~amd64~~26100.4946.1.26 が削除対象となる LCU です。

パッケージのアンインストール
下記のコマンドを実行して、先程確認したパッケージをアンインストールします。
パッケージ名は自身の環境に合わせて変更してください。
Remove-WindowsPackage -Online -PackageName "Package_for_RollupFix~31bf3856ad364e35~amd64~~26100.4946.1.26"
コマンドを実行するとアンインストールが始まり、画像のような進捗状況が表示されます。
PCによって違いますがこの作業には十数分掛かります。

アンインストールが完了すると「この操作を完了するために、今すぐコンピューターを再起動しますか?」というメッセージが表示されるのでy
を入力し、PCを再起動してください。

アンインストール出来ているか確認
DISMでのWindowsアップデートのアンインストールはSSUが残っている為、設定の更新履歴から『KB5063878』の表示も残っています。
その為、LCUが正しく削除できているか確認する為にはもう一度下記のコマンドを実行し、パッケージの一覧を確認する必要があります。
Get-WindowsPackage -Online | Where-Object {$_.PackageName -match "4946"}
表示されたリストのパッケージ名の中に RollupFix が含まれているものがなければ、正しく削除できています。

終わりに
これでDISMを使用したWindows更新プログラムの削除は終わりです。
一部のPCではこの方法でも「永続的パッケージはアンインストールできません。」といったようなエラーが表示されてしまうようですが、こちらで再現出来ていないので原因は分かっていません。
もしよければコメントか、XでDMしてください。
コメント