【Windows10】Update：KB5034441の0x80070643エラー対処備忘録（2024年1月）

# はじめに
Windows10 Update で**KB5034441**の**0x80070643**エラーが発生する場合の対処方法を備忘録的に軽く記載します。
（色々面倒なことがあったので参考情報を記載します）
ある程度再現性を重視して、手順には、PCを普段から使っている人には冗長な内容も記載しています。


# 目次
- 前提
- エラー概要
- 対処方法
- 参考文献


# 前提
本件エラーの解決を確認した環境等をまとめます。

## 対象者
- Windows Updateで**KB5034441**の**0x80070643**エラーが発生した人
- Windows 10 ユーザー
- Windows 11 ユーザーも対象の可能性あり（実機で未確認）
- 普段ICT関連に詳しいけど、たまにPowerShellとかになると操作方法忘れる人
- 普段ICT関連触れている程度の人（ICT見習い系）

## 動作確認環境
- OS
  - Windows 10 
  - version 22H2
- CPUアーキテクチャ
  - x64（64bit）
- PatchWinREScript_2004plus.ps1スクリプト動作環境
  - Windows 10
  - version 2004 以降（Windows 11を含む）


# エラー概要
- Windows 10 21H2/22H向けに配信されている
- Windows回復環境（WinRE）の更新プログラム
- **KB5034441**
- 適用した際に、「**0x80070643**エラー」などで更新に失敗する不具合が発生

**0x80070643** エラーで更新に失敗する問題に対処するための「PowerShellスクリプト」をMicrosoftが公開した模様。
このスクリプトを使用すれば、エラーを回避して正常にアップデートを完了させることができるとのこと。

なお、この更新プログラムの目的は、実行中の PC 上の Windows Recovery Environment (WinRE) に安全な OS 動的更新プログラム (**KB5034232**) を自動的に適用するためのものらしい。
　⇒ 今回は、上記の「**KB5034232**」をローカルにダウンロードして手動で適用することになると考えられる。


# 対処方法
## 1. Windowsバージョン確認
[Windowsキー] ＋ [R] ⇒ 「winver」を入力して実行
※参考：[バージョン一覧]

## 2. バージョンに合わせたスクリプトを保存
[こちらのページ][KB5034957：スクリプト公開ページ]にて、Windowsバージョンに合わせて、2つのスクリプトから選択してコピー
　↓
テキストエディタ等で拡張子「.ps1」ファイルとして名前を付けて保存

## 3. 更新プログラム（KB5034232）をダウンロード
[こちらのサイト][ダウンロードサイト]の検索欄で「**KB5034232**」を検索
　↓
環境に合わせた拡張子「.cab」ファイルをダウンロード

※(例) Windows 10 Version 22H2、64bit OSの場合：
⇒「2024-01 Dynamic Update for Windows 10 Version 22H2 for x64-based Systems (KB5034232)」の項目からダウンロード

## 4. PowerShellを管理者権限で起動
モニター左下の「Windowsの検索欄」で「powershell」で検索
　↓
Windows PowerShell（x86ではない）の「管理者として実行する」メニューを選択して起動

## 5. PowerShell のスクリプトの実行ポリシーを確認
`Get-ExecutionPolicy`を実行
```powershell:sample01.ps1
Get-ExecutionPolicy
```

## 6. RemoteSigned 以上の権限が無ければ権限を変更
```powershell:sample02.ps1
Set-ExecutionPolicy 実行ポリシー名
```
[こちらの記事][PowerShell権限変更]（Qiita：Targityen様）を参考にしてください。
※`Set-ExecutionPolicy RemoteSigned`が一般的と思われる。

実行例：
`Set-ExecutionPolicy RemoteSigned`⇒`y`（はい(Y)）を入力して[Enter]キー押下

## 7. 保存したスクリプトをコマンドライン上で実行
引数無しでも引数ありでもOK。
※(例) カレントディレクトリのスクリプトファイル名が「PatchWinREScript_2004plus.ps1」の場合：
```powershell:sample03.ps1
.\PatchWinREScript_2004plus.ps1
```

## 8. ダウンロードした更新プログラムのフルパスを入力
引数無しでスクリプトを実行した場合、下記の様なメッセージが出力されるので、
`packagePath: `の後に続けて、手順3でダウンロードした更新プログラムのフルパス
例：`C:\Users\TestUserName\work\data\windows10.0-kb5034232-x64_ff4651e9e031bad04f7fa645dc3dee1fe1435f38.cab`
を入力して、[Enter]キー押下
```text:sampleText01.txt
コマンド パイプライン位置 1 のコマンドレット PatchWinREScript_2004plus.ps1
次のパラメーターに値を指定してください:
(ヘルプを表示するには、「!?」と入力してください。)
packagePath: 
```

## 9. しばらく(数分程)スクリプトの完了を待機
※コマンドライン上の入力カーソルが有効になるまで。
※下記の間に「エラー: 50」、「この要求はサポートされていません。」が出てもOK。

スクリプト実行中のコマンドラインのメッセージ出力の流れ（一部抜粋）
```text:sampleText02.txt
1 個のファイルが正常に処理されました。0 個のファイルを処理できませんでした
　↓
REAGENTC.EXE: 操作は成功しました。
　↓
イメージを保存しています
　↓
イメージのマウントを解除しています
　↓
操作は正常に完了しました。
　↓
この操作を正しく終了しました。
　↓
 - Delete mount direcotry
```

## 10. 再度WindowsUpdateを再試行
Windowsの設定画面から、再度WindowsUpdateを実行して、正常に更新できれば完了です。


# 参考文献
1. Windows 10 KB503444で0x80070643エラーが出る不具合に対処するスクリプトをMicrosoftが公開、適時利用を（enjoypclife.net - よっしー様）
[エラー情報まとめ記事]
2. Microsoft Windows 10のバージョン履歴（Wikipedia）
[バージョン一覧]
3. KB5034957: CVE-2024-20666 のセキュリティの脆弱性に対処するために、展開されたデバイスの WinRE パーティションを更新する（Microsoft公式サポート）
[KB5034957：スクリプト公開ページ]
4. Microsoft Update カタログ（Microsoft公式 更新プログラムダウンロードサイト）
[ダウンロードサイト]
5. KB5034441: Windows 10 バージョン 21H2 および 22H2 用 Windows 回復環境の更新プログラム: 2024 年 1 月 9 日（Microsoft公式サポート）
[KB5034441：更新プログラム概要]
6. PowerShell のスクリプトが実行できない場合の対処方法（Qiita：Targityen様）
[PowerShell権限変更]





[エラー情報まとめ記事]: https://enjoypclife.net/windows-10-kb503444-0x80070643-error-fix-poweshell-script/ "enjoypclife.net"
[バージョン一覧]: https://ja.wikipedia.org/wiki/Microsoft_Windows_10%E3%81%AE%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E5%B1%A5%E6%AD%B4 "wikipedia.org"
[KB5034957：スクリプト公開ページ]: https://support.microsoft.com/ja-jp/topic/kb5034957-cve-2024-20666-%E3%81%AE%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3%E3%81%AE%E8%84%86%E5%BC%B1%E6%80%A7%E3%81%AB%E5%AF%BE%E5%87%A6%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AB-%E5%B1%95%E9%96%8B%E3%81%95%E3%82%8C%E3%81%9F%E3%83%87%E3%83%90%E3%82%A4%E3%82%B9%E3%81%AE-winre-%E3%83%91%E3%83%BC%E3%83%86%E3%82%A3%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%92%E6%9B%B4%E6%96%B0%E3%81%99%E3%82%8B-0190331b-1ca3-42d8-8a55-7fc406910c10 "support.microsoft.com"
[ダウンロードサイト]: https://www.catalog.update.microsoft.com/Search.aspx?q=Safe%20OS "catalog.update.microsoft.com"
[KB5034441：更新プログラム概要]: https://support.microsoft.com/ja-jp/topic/kb5034441-windows-10-%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3-21h2-%E3%81%8A%E3%82%88%E3%81%B3-22h2-%E7%94%A8-windows-%E5%9B%9E%E5%BE%A9%E7%92%B0%E5%A2%83%E3%81%AE%E6%9B%B4%E6%96%B0%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0-2024-%E5%B9%B4-1-%E6%9C%88-9-%E6%97%A5-62c04204-aaa5-4fee-a02a-2fdea17075a8 "support.microsoft.com"
[PowerShell権限変更]: https://qiita.com/Targityen/items/3d2e0b5b0b7b04963750 "qiita.com"