TPM‑WMI 1803 — обновление Platform Key Secure Boot на ВМ VMware
В ежедневном журнале событий System на виртуальных машинах под управлением VMware ESXi (в моем случае версии 7.x) появляются ошибки:
Microsoft‑Windows‑TPM‑WMI ID:1803 (дважды в сутки):
A PK-signed Key Exchange Key (KEK) cannot be found for this device. Check with the device manufacturer for proper key provisioning.Microsoft‑Windows‑TPM‑WMI ID:1801 (после перезагрузок):
Updated Secure Boot certificates are available on this device but have not yet been applied to the firmware.
2. Причина
Windows автоматически заменяет сертификаты Secure Boot 2011 года (истекают в 2026 г.) на Microsoft 2023 CA. Для записи нового KEK (Microsoft Corporation KEK 2K CA 2023) он должен быть подписан текущим Platform Key (PK) прошивки.
У ВМ, созданных на ESXi до версии 8.0 U3j, в NVRAM записан сертификат PK от VMware с некорректной подписью. Подписанного под него KEK у Microsoft нет, поэтому обновление KEK/DB не применяется и регистрируется ошибка 1803 (подробнее см. Broadcom KB 423919).
Обновление VMware Tools проблему не решает: требуется ручная замена PK в NVRAM ВМ на Windows OEM Devices PK от Microsoft.
3. Решение — ручная замена PK (Broadcom KB 423919)
Примечание: Последующие действия протестированы на ОС Windows Server 2016, 2019 и 2022 (без использования BitLocker).
3.1. Подготовка
Сделать снапшот ВМ.
Скачать файл
WindowsOEMDevicesPK.derиз официального репозитория Microsoft на GitHub: microsoft/secureboot_objects / PreSignedObjects/PK/CertificateПодключить временный виртуальный диск размера 128 МБ, отформатированный в FAT32, и поместить на него файл
WindowsOEMDevicesPK.der.
3.2. Порядок работ на каждой ВМ
Перед началом работ выполните действия из пункта 3.1. Подготовка.
Выключить ВМ.
Разрешить изменение переменных Secure Boot без аутентификации (добавить параметр VMX):
vCenter 7.x: Edit Settings → VM Options → Advanced → Edit Configuration
vCenter 8.x / 9.x: Edit Settings → Advanced Parameters
Параметр:
uefi.allowAuthBypass = "TRUE"
Включить вход в настройки прошивки: Edit Settings → VM Options → Boot Options → включить Force EFI Setup.
Включить ВМ.
В интерфейсе UEFI:
Enter Setup→Secure Boot Configuration→PK Options→Enroll PK→Enroll PK Using File→ выбрать диск 128 МБ (LBA 0x80, Total Block Size 0x3F000) → выбрать файлWindowsOEMDevicesPK.der→Commit changes and exit.Выключить ВМ.
(PK записывается в NVRAM (файл
.nvramВМ) сразу после выполнения Commit).Обязательно: удалить параметр
uefi.allowAuthBypass = "TRUE"из конфигурации ВМ (пока параметр активен, переменные Secure Boot можно изменять без проверки подписи). Убедиться, что параметр Force EFI Setup выключен.Отключить от ВМ временный диск 128 МБ.
Включить ВМ.
3.3. Проверка установленного PK
Запустить PowerShell от имени администратора:
$pk = Get-SecureBootUEFI -Name PK
$bytes = $pk.Bytes
$cert = $bytes[44..($bytes.Length-1)]
[IO.File]::WriteAllBytes("PK.der", $cert)
certutil -dump PK.derОжидаемый результат:
Subject: CN=Windows OEM Devices PK, O=Microsoft Corporation
Issuer: CN=Microsoft RSA Third Party PCA 2023
Срок действия: 21.09.2023 – 18.09.2038
Cert Hash(sha1): 3d8660c0cb2d57b189c3d7995572a552f75e48b53.4. Применение KEK и сертификатов 2023
После успешной замены PK операционная система Windows автоматически применит обновления KEK/DB. Для принудительного ускорения процесса в PowerShell:
Start-ScheduledTask -TaskPath "\Microsoft\Windows\PI\" -TaskName "Secure-Boot-Update"После этого перезагрузить ВМ и журнале событий System проверить событие 1808.
Пример корректного события 1808 в журнале System:
This device has updated Secure Boot CA/keys. This device signature information is included here.
UpdateType: Windows UEFI CA 2023 (DB), Option ROM CA 2023 (DB), 3P UEFI CA 2023 (DB), KEK 2023, Boot Manager (2023)
3.5. Итоговая проверка
Выполните проверку через PowerShell:
# 1. Проверка наличия нового KEK в прошивке (ожидается True)
[System.Text.Encoding]::ASCII.GetString((Get-SecureBootUEFI -Name KEK).Bytes) -match 'KEK 2K CA 2023'
# 2. Состояние обновления (ожидается 0x4000)
'0x{0:X}' -f (Get-ItemProperty HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot).AvailableUpdates
# 3. События TPM-WMI (ожидается наличие события 1808, новые 1803/1801 должны отсутствовать)
Get-WinEvent -FilterHashtable @{LogName='System'; ProviderName='Microsoft-Windows-TPM-WMI'} -MaxEvents 10 | ft TimeCreated, Id, Message -Wrap
После успешной проверки удалите ранее созданный снапшот ВМ.
4. Замечания
Снапшоты ВМ: Снапшот создается до подключения временного диска FAT32, поэтому диск в структуру снапшота не входит и не влияет на операции удаления или отката.
Версии ESXi: Исправление с валидным PK по умолчанию интегрировано в релизах ESXi 8.0 U3j и новее, а также в серии ESXi 9.x. Для ВМ, созданных на этих версиях, ручная процедура не требуется.
5. Источники
Broadcom KB 423919 — Manual Update of the Secure Boot Platform Key in Virtual Machines:
Microsoft — Secure Boot troubleshooting guide:
KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.