下記の脆弱性に対応するPowerShellスクリプトが公開されたので実行してみました。
Homeエディションだからなのか、スクリプトの途中でエラーが発生しました。
Microsoftが「Windows回復環境」(WinRE)の脆弱性に対処するスクリプトを公開 - 窓の杜
KB5025175: CVE-2022-41099 のセキュリティの脆弱性に対処するために、展開されたデバイスの WinRE パーティションを更新する - Microsoft サポート
KB5025175: Updating the WinRE partition on deployed devices to address security vulnerabilities in CVE-2022-41099 - Microsoft Support
環境
- OS
- Windows 11
- バージョン
- 22H2
- エディション
- Home
- ビルド
- 22621.1413
手順
Homeエディションだからなのか、スクリプトの途中でエラーが発生しました。
- サイト から "PatchWinREScript_2004plus.ps1" をコピペして保存します。
- インデントが消えている状態でベタ貼りされているので、取得しづらい……
- ファイルとして公開して欲しい……
- Windows Update カタログ からパッチをダウンロードします。
- 1のファイルと同じフォルダに保存します。
- 私の環境では "2023-02 Dynamic Update for Windows 11 Version 22H2 for x64-based Systems (KB5023527)" を保存しました。
- ターミナルを管理者モードで起動します。
コマンドを実行します。
.\PatchWinREScript_2004plus.ps1 -packagePath "windows11.0-kb5023527-x64_076cd9782ebb8aed56ad5d99c07201035d92e66a.cab"
手元の環境では途中でpsファイルのエラーが発生したので、残りの処理を手動で実行しました。
reagentc /disable reagentc /enable reagentc /info
実行ログ
PS C:\Users\user\Downloads> .\PatchWinREScript_2004plus.ps1 -packagePath "windows11.0-kb5023527-x64_076cd9782ebb8aed56ad5d99c07201035d92e66a.cab" 03/21/2023 18:11:40 - No input for mount directory 03/21/2023 18:11:40 - Use default path from temporary directory 03/21/2023 18:11:40 - Working Dir: C:\Users\user\AppData\Local\Temp\ 03/21/2023 18:11:40 - MountDir: C:\Users\user\AppData\Local\Temp\CA551926-299B-27A55276EC22_Mount 03/21/2023 18:11:40 - Create mount directory C:\Users\user\AppData\Local\Temp\CA551926-299B-27A55276EC22_Mount Directory: C:\Users\user\AppData\Local\Temp Mode LastWriteTime Length Name ---- ------------- ------ ---- d---- 2023/03/21 18:11 CA551926-299B-27A55276EC22_Mount 03/21/2023 18:11:40 - Set ACL for mount directory 処理ファイル: C:\Users\user\AppData\Local\Temp\CA551926-299B-27A55276EC22_Mount 1 個のファイルが正常に処理されました。0 個のファイルを処理できませんでした 処理ファイル: C:\Users\user\AppData\Local\Temp\CA551926-299B-27A55276EC22_Mount 1 個のファイルが正常に処理されました。0 個のファイルを処理できませんでした 処理ファイル: C:\Users\user\AppData\Local\Temp\CA551926-299B-27A55276EC22_Mount 1 個のファイルが正常に処理されました。0 個のファイルを処理できませんでした 03/21/2023 18:11:40 - Mount WinRE: REAGENTC.EXE: 操作は成功しました。 03/21/2023 18:12:24 - TargetFile: C:\Users\user\AppData\Local\Temp\CA551926-299B-27A55276EC22_Mount\Windows\System32\bootmenuux.dll 03/21/2023 18:12:24 - Target file version: 10.0.22621.317 03/21/2023 18:12:24 - Windows 11, version 22H2 03/21/2023 18:12:24 - Apply package:windows11.0-kb5023527-x64_076cd9782ebb8aed56ad5d99c07201035d92e66a.cab 03/21/2023 18:12:38 - Successfully applied the package 03/21/2023 18:12:38 - Cleanup image 03/21/2023 18:12:42 - Cleanup image succeed 03/21/2023 18:12:42 - TargetFile: C:\Users\user\AppData\Local\Temp\CA551926-299B-27A55276EC22_Mount\Windows\System32\bootmenuux.dll 03/21/2023 18:12:42 - Target file version: 10.0.22621.815 03/21/2023 18:12:42 - Windows 11, version 22H2 03/21/2023 18:12:42 - Windows 11, version 22H2 with revision 815 >= 815, updates have been applied 03/21/2023 18:12:42 - After patch, find expected version for target file 03/21/2023 18:12:42 - Patch succeed, unmount to commit change 展開イメージのサービスと管理ツール バージョン: 10.0.22621.1 イメージを保存しています [==========================100.0%==========================] イメージのマウントを解除しています [==========================100.0%==========================] 操作は正常に完了しました。 03/21/2023 18:13:24 - Checking BitLocker status InvalidOperation: C:\Users\user\Downloads\PatchWinREScript_2004plus.ps1:44 Line | 44 | switch ($BitLocker.GetProtectionStatus().protectionStatus) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | Method invocation failed because | [Deserialized.System.Management.ManagementObject#Root\cimv2\Security\MicrosoftVolumeEncryption\Win32_EncryptableVolume] does not contain a method named 'GetProtectionStatus'. 03/21/2023 18:13:26 - Bitlocker isn’t enabled on the OS この操作を正しく終了しました。 03/21/2023 18:13:26 - Delete mount direcotry
BitLockerが有効の環境ですがメソッドが存在しないというエラーが発生しました。
BitLocker周りの確認処理でエラーが出るので後続処理を手動で実行しました。
PS C:\Users\user\Downloads> reagentc /disable REAGENTC.EXE: 操作は成功しました。 PS C:\Users\user\Downloads> reagentc /enable REAGENTC.EXE: 操作は成功しました。 PS C:\Users\user\Downloads> reagentc /info Windows 回復環境 (Windows RE) およびシステム リセット構成 情報: Windows RE の状態: Enabled Windows RE の場所: \\?\GLOBALROOT\device\harddisk0\partition4\Recovery\WindowsRE ブート構成データ (BCD) ID: ********-****-****-****-************ 回復イメージの場所: 回復イメージ インデックス: 0 カスタム イメージの場所: カスタム イメージ インデックス: 0 REAGENTC.EXE: 操作は成功しました。
ドキュメントを見るとGetProtectionStatus()やGetKeyProtectors()は存在しているのに手元の環境だと does not contain a method named
になったので、環境によってはダメなのかもしれないです。
手動で残りを実行しましたが、果たして大丈夫だったのか不安になります……
2023/03/22 追記
Windows 10 Pro 22H2の環境でも同じくBitLocker周りでスクリプトがエラーになりました。PowerShell 7を使っているから?
Win10の環境では Get-WmiObject
でエラーになりました。どうやら Get-CimInstance
に置き換わったらしい。
( Get-CimInstance
に書き換えてもWin11で実行した時と同様の箇所でエラーになりました……)