
Автономная оценка и обслуживание для ротации сертификатов Secure Boot 2011–2023 годов (CVE-2023-24932 / KB5025885). По умолчанию работает только в режиме оценки; без зависимостей, без сети, без телеметрии.
Один автономный сценарий PowerShell, который оценивает состояние сертификатов Secure Boot на компьютере с Windows в рамках перехода 2011 → 2023 (CVE-2023-24932 / KB5025885) и, только если вы явно попросите, включает этот компьютер в конвейер обслуживания Microsoft.
Опубликовано Exchange Technology Services для заказчиков и партнёров, которые управляют собственными конечными точками.
Сертификаты Secure Boot, выпущенные Microsoft в 2011 году, истекают и заменяются версиями 2023 года.
| Сертификат | Дата | Хранилище | Роль |
|---|
| Microsoft Corporation KEK CA 2011 | истёк 24 июня 2026 | KEK | Авторизует обновления DB и DBX |
| Microsoft UEFI CA 2011 | истёк 27 июня 2026 | DB | Подписывает сторонние загрузчики / option ROM |
| Windows Production PCA 2011 | 19 октября 2026 | DB | Подписывает загрузчик Windows |
Ни один компьютер не перестанет загружаться ни в одну из этих дат. Согласно рекомендациям Microsoft, устройство, достигшее срока истечения без новых сертификатов, «will still start and operate normally».
Теряется возможность получать обновления безопасности ранней загрузки — новые отзывы сертификатов Secure Boot, меры против обхода BitLocker, исправления диспетчера загрузки. Это накопление рисков, а не простой.
После 19 октября 2026 компьютер, в прошивке которого никогда не было Windows UEFI CA 2023, также перестаёт проверять подпись новых загрузочных носителей Windows, что может затронуть среды восстановления, установки и PXE.
KEK — это шлюз. Без Microsoft Corporation KEK 2K CA 2023 в прошивке Windows Update вообще не сможет доставить обновление DB. Компьютер без него нельзя исправить, пока KEK не появится через Windows Update или обновление BIOS от OEM. На практике это самый частый блокирующий фактор, и сценарий сообщает о нём явно, а не записывает значение, которое ничего не даст.
| Свойство | Подробности |
|---|---|
| Поведение по умолчанию | Только оценка. Никаких записей без -Apply. |
| Зависимости | Нет. Без модулей, без установщика. Windows PowerShell 5.1. |
| Сетевой доступ | Нет. Никогда не обращается ни к какому узлу. |
| Телеметрия / отчётность | Нет. Всё, что он находит, выводится на вашу консоль. Ничего не покидает машину. |
| Ключи восстановления BitLocker | Никогда не читаются, не выводятся и не передаются. Проверяется только, существует ли защитник с паролем восстановления. |
Что записывает -Apply | Ровно одно значение реестра: AvailableUpdates = 0x5944 в разделе HKLM\SYSTEM\CurrentControlSet\Control\Secureboot. Документированный вариант включения из KB5025885. Аддитивно — добавляет сертификат 2023 года, не удаляя сертификат 2011 года. |
| Необратимые действия | Жёсткий отказ. Бит отзыва 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, но машина по-прежнему загружает загрузчик, подписанный сертификатом 2011. Сегодня всё работает; при отзыве сертификата 2011 загрузка была бы невозможна. Всё ещё требуется обновление диспетчера загрузки. | 0 |
HalfMigrated-Armed | Как выше, и включение уже выполнено. Перезагрузите машину — не запускайте -Apply повторно. | 0 |
AlreadyQueued | Включение выполнено, ожидается поэтапное развёртывание Microsoft. | 0 |
InProgress / RebootPending | Идёт обслуживание. Перезагрузитесь и запустите снова, чтобы отслеживать прогресс. | 0 |
FullyMigrated | Готово. Диспетчер загрузки подписан сертификатом 2023. | 2 |
BlockedNoKek2023 | Отсутствует KEK 2023. Сначала установите ожидающие обновления Windows и/или обновление BIOS от OEM. | 3 |
BlockedFirmwareKek | В прошивке нет KEK, подписанного ключом платформы этой машины. Требуется обновление BIOS от OEM (или, на ВМ, обновление узла). | 3 |
NotApplicable-* | Устаревший BIOS (legacy) или отключённый Secure Boot. | 2 |
Error | Обслуживание сообщило об ошибке; код ошибки выводится. | 0 |
В отчёте состояние обслуживания и состояние миграции показаны раздельно.
В реальных условиях эти два состояния действительно расходятся. Машина может сообщать UEFICA2023Status = Updated, в то время как оба бинарных файла диспетчера загрузки на диске по-прежнему подписаны сертификатом 2011 — так бывает, когда прошивка уже включала ЦС 2023, поэтому часть с сертификатами завершилась, а часть с диспетчером загрузки никогда не выполнялась. Если объединить два состояния в одно поле, такая машина будет показана как завершённая, хотя она находится в состоянии half-migrated.
По той же причине сценарий не выводит статус из WindowsUEFICA2023Capable. Документация Microsoft говорит об этом значении дословно: "For reference only - do not use this key when getting status on Secure Boot updates." Оно сохраняется только как диагностические данные.
Шаги обслуживания изменяют состояние прошивки, что может сдвинуть значения PCR TPM, к которым привязан защитник BitLocker, и при следующей загрузке появится запрос ключа восстановления.
-Apply массово, убедитесь, что ваше резервное хранение в порядке.-SuspendBitLocker приостанавливает защиту на время следующей перезагрузки, чтобы изменение было повторно опечатано без запроса. После этого BitLocker автоматически возобновляет защиту.Состояние BitLocker считывается тремя независимыми способами (Get-BitLockerVolume, manage-bde и Win32_EncryptableVolume) и сверяется. Если источники расходятся или ни один не может прочитать том, сценарий отказывается изменять прошивку, а не угадывает.
| Параметр | По умолчанию | Назначение |
|---|---|---|
-Apply | off | Выполнить запись. Без него — только чтение. |
-SuspendBitLocker | off | Приостановить BitLocker на время перезагрузки для обслуживания. |
-RebootCount | 1 | На сколько перезагрузок приостановить защиту (1–15). |
-JsonPath | none | Также записать оценку в формате JSON. |
-MountPoint | системный диск | Том для оценки. |
-ApplyValue | 0x5944 | Значение DWORD AvailableUpdates. |
-AllowRevocation | off | Требуется для любого значения, содержащего необратимый бит 0x80 в DBX. Не передавайте этот параметр. |
-AllowVirtualMachine | off | Разрешить включение на виртуальной машине. |
-AllowServer | off | Разрешить включение на серверной редакции. |
Виртуальные машины по умолчанию исключены: ЦС 2023 попадает в базовую прошивку через обновление BIOS, а прошивка ВМ поступает от гипервизора — гостевая ОС на необновлённом узле не может завершить миграцию самостоятельно.
Протестировано полностью на Windows 11 (сборка 26200, PowerShell 5.1, от имени SYSTEM), UEFI с включённым Secure Boot, BitLocker полностью зашифрован с защитниками TPM + RecoveryPassword в профиле PCR 7,11:
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 для каждого устройства, и это вне чьего-либо контроля. Сценарий показывает указанную причину ограничения, а не оставляет её необъяснимым отсутствием действий.
MIT — см. LICENSE. Предоставляется как есть, без каких-либо гарантий. Изучите его перед запуском в своей среде; именно поэтому это один читаемый файл.