2011年 → 2023年のロールオーバー(CVE-2023-24932 / KB5025885)に対するWindowsマシンのSecure Boot証明書の状態を評価し、明示的に指定した場合のみ、そのマシンをMicrosoftのサービス適用パイプラインにオプトインする、単一の自己完結型PowerShellスクリプトです。
Exchange Technology Services が、自社のエンドポイントを管理するお客様およびパートナー向けに公開しています。
Microsoftが2011年に発行したSecure Boot証明書は期限切れとなり、2023年版に置き換えられています。
| 証明書 | 日付 | ストア | 役割 |
|---|
| Microsoft Corporation KEK CA 2011 | 2026年6月24日 期限切れ | KEK | DBおよびDBXへの更新を承認 |
| Microsoft UEFI CA 2011 | 2026年6月27日 期限切れ | DB | サードパーティのローダー / オプションROMに署名 |
| Windows Production PCA 2011 | 2026年10月19日 | DB | Windowsブートローダーに署名 |
これらの日付のいずれでもマシンの起動が停止することはありません。 Microsoftのガイダンスでは、新しい証明書なしで期限を迎えたデバイスは「引き続き正常に起動および動作する」とされています。
失われるのは、早期ブートセキュリティ更新(新しいSecure Boot失効、BitLockerバイパス緩和、ブートマネージャーの修正)を受け取る能力です。これは停止ではなく、累積する露出です。
2026年10月19日以降、ファームウェアがWindows UEFI CA 2023を取り込んでいないマシンは、新たに署名されたWindowsブートメディアの検証も停止します。これは、回復、インストール、PXEメディアに影響する可能性があります。
KEKがゲートです。 ファームウェアにMicrosoft Corporation KEK 2K CA 2023がない場合、Windows UpdateはDB更新をまったく配信できません。これがないマシンは、Windows UpdateまたはOEM BIOS更新を介してKEKが届くまで修復できません。これは実際には最も一般的なブロッカーであり、スクリプトは何もしない値を書き込むのではなく、これを明示的に報告します。
| プロパティ | 詳細 |
|---|---|
| デフォルトの動作 | 評価のみ。 -Applyなしでは書き込みは一切行いません。 |
| 依存関係 | なし。 モジュールもインストーラーも不要です。Windows PowerShell 5.1。 |
| ネットワークアクセス | なし。 いかなるホストにも接続しません。 |
| テレメトリ / レポート | なし。 検出した内容はすべてコンソールに出力します。マシンの外に出る情報はありません。 |
| BitLocker回復キー | 読み取り、出力、送信は一切行いません。 回復パスワードプロテクターが存在するかどうかのみを確認します。 |
-Applyが書き込むもの | 正確に1つのレジストリ値のみ: HKLM\SYSTEM\CurrentControlSet\Control\Secureboot 配下の AvailableUpdates = 0x5944。文書化されたKB5025885のオプトインです。追加的 — 2011年の証明書を削除せずに2023年の証明書を追加します。 |
| 不可逆的な操作 | ハードリフューズ。0x80 DBX失効ビットは、Secure Bootが有効である限り永久的です。スクリプトは、-AllowRevocationが明示的に指定されない限り、このビットを持つ値を拒否します。指定しないでください。 |
| 再起動 | マシンを再起動することはなく、ユーザーにプロンプトを表示することもありません。 |
Windows PowerShell 5.1、管理者として — UEFI変数の読み取りには昇格が必要です。
1. ファイルのブロックを解除(Windowsはダウンロードしたスクリプトをブロックします):
Unblock-File .\Invoke-SecureBootCertServicing.ps1
2. 評価 — 安全で、変更は行いません:
powershell.exe -ExecutionPolicy Bypass -File .\Invoke-SecureBootCertServicing.ps1
3. 適用 — 評価でマシンが準備完了と示された場合のみ:
.\Invoke-SecureBootCertServicing.ps1 -Apply -SuspendBitLocker
レポートはWrite-Hostで書き込まれるため、コンソールに表示され、Start-Transcriptで記録されます。単純な>リダイレクトでは取得できず、別のコマンドへのパイプでも取得できません。
Start-Transcript C:\Temp\secureboot.log
.\Invoke-SecureBootCertServicing.ps1
Stop-Transcript
フリート全体で結果を収集する場合に便利な、マシン可読なコピー:
.\Invoke-SecureBootCertServicing.ps1 -JsonPath C:\Temp\secureboot.json
| 判定 | 意味 | 終了コード |
|---|---|---|
ReadyToArm | KEK 2023が存在し、DBはまだ移行されておらず、オプトインもされていません。次のステップは-Applyです。 | 0 |
HalfMigrated | ファームウェアは2023 CAを信頼していますが、マシンは依然として2011年署名のローダーで起動します。現在は問題ありませんが、2011が失効した場合には起動に失敗します。ブートマネージャー更新がまだ必要です。 | 0 |
HalfMigrated-Armed | 上記に同じで、すでにオプトイン済みです。マシンを再起動してください — -Applyを再実行しないでください。 | 0 |
AlreadyQueued | オプトイン済みで、Microsoftの段階的ロールアウトを待機中です。 | 0 |
InProgress / RebootPending | サービス適用が進行中です。再起動して再実行し、進行状況を確認してください。 | 0 |
FullyMigrated | 完了です。ブートマネージャーは2023年署名です。 | 2 |
BlockedNoKek2023 | KEK 2023がありません。先に保留中のWindows Updateおよび/またはOEM BIOS更新をインストールしてください。 | 3 |
BlockedFirmwareKek | ファームウェアに、このマシンのプラットフォームキーによって署名されたKEKがありません。OEM BIOS更新(VMの場合はホスト更新)が必要です。 | 3 |
NotApplicable-* | レガシーBIOS、またはSecure Boot無効。 | 2 |
Error | サービス適用で障害が報告されました。エラーコードが出力されます。 | 0 |
レポートはサービス適用状態と移行状態を別々に示します。
これらは実際の現場で本当に一致しないことがあります。ディスク上の両方のブートマネージャーバイナリが依然として2011年署名であるにもかかわらず、マシンがUEFICA2023Status = Updatedを報告することがあります。これは、ファームウェアが2023 CAを事前登録済みで出荷された場合に発生し、証明書側は完了してもブートマネージャー側は実行されません。この2つを1つのフィールドにまとめると、そのマシンが半分しか移行していないのに完了として報告されます。
同じ理由で、スクリプトはWindowsUEFICA2023Capableから状態を導出しません。Microsoftのドキュメントはその値について、そのまま引用すると: "参考のみ - Secure Boot 更新のステータスを取得するときにこのキーを使用しないでください。" 診断専用として取得されるだけです。
サービス適用の手順はファームウェアの状態を変更し、BitLockerプロテクターがシールされているTPM PCRを移動させる可能性があり、次の起動時に回復キーのプロンプトが表示されることがあります。
-Applyを実行する前に、エスクローが正常であることを確認してください。-SuspendBitLockerは、次の再起動にわたって保護を中断し、プロンプトなしで変更が再シールされるようにします。BitLockerはその後自動的に再開されます。BitLocker状態は3つの独立した方法(Get-BitLockerVolume、manage-bde、Win32_EncryptableVolume)で読み取られ、調整されます。リーダーが一致しない場合、またはボリュームを読み取れない場合、スクリプトは推測せずにファームウェアの変更を拒否します。
| パラメーター | 既定値 | 目的 |
|---|---|---|
-Apply | オフ | 書き込みを実行します。これがないと読み取り専用です。 |
-SuspendBitLocker | オフ | サービス適用の再起動にわたってBitLockerを中断します。 |
-RebootCount | 1 | 中断する再起動の回数(1〜15)。 |
-JsonPath | なし | 評価をJSONとしても書き出します。 |
-MountPoint | システムドライブ | 評価するボリューム。 |
-ApplyValue | 0x5944 | AvailableUpdates DWORD。 |
-AllowRevocation | オフ | 不可逆的な0x80 DBXビットを含む値に必要です。これを指定しないでください。 |
-AllowVirtualMachine | オフ | VMのアームを許可します。 |
-AllowServer | オフ | Server SKUのアームを許可します。 |
仮想マシンはデフォルトで除外されます。2023 CAはBIOS更新を介してファームウェアのベースラインに到達します。VMのファームウェアはハイパーバイザーに由来するため、更新されていないホスト上のゲストは単独で移行を完了できません。
Windows 11(ビルド26200、PowerShell 5.1、SYSTEMとして実行)、Secure Boot有効のUEFI、PCR 7,11プロファイルでTPM + RecoveryPasswordプロテクターを使用して完全暗号化されたBitLockerでエンドツーエンドにテスト済み:
Windows UEFI CA 2023を信頼している一方でbootmgfw.efiが依然としてMicrosoft Windows Production PCA 2011によって署名されており、そのマシンが同時にUEFICA2023Status = UpdatedおよびWindowsUEFICA2023Capable = 2を報告していたにもかかわらず、完了として報告しませんでした。0x80失効ビット(終了コード1)。-Applyは0x5944を書き込み、独立したレジストリ読み取りで確認されました。-SuspendBitLockerの後に再起動: マシンは回復プロンプトなしで戻り、BitLockerは自動再開されました。Start-Transcriptは完全なレポートを取得しました。JSON出力には回復キーに関する情報は含まれていませんでした。まだ観測されていないもの: FullyMigratedへの完全な移行を完了したマシン。最終ステップはMicrosoftの段階的なデバイスごとのロールアウトによってゲートされており、これは誰の制御下にもありません。スクリプトは、そのゲートの理由を説明のないno-opのままにするのではなく、明示的に表示します。
MIT — LICENSEを参照してください。現状のまま提供され、保証はありません。お使いの環境で実行する前に確認してください。まさにその理由から、単一の読み取り可能なファイルです。