Застосовується до
Windows 10 Windows 10, version 1607, all editions Windows 10 Enterprise LTSC 2019 Win 10 IoT Ent LTSC 2019 Windows 10 IoT Core LTSC Windows 10 Enterprise LTSC 2021 Windows 10 IoT Enterprise LTSC 2021 Windows 10, version 22H2, all editions Windows 11 Home and Pro, version 21H2 Windows 11 Enterprise Multi-Session, version 21H2 Windows 11 Enterprise and Education, version 21H2 Windows 11 IoT Enterprise, version 21H2 Windows 11 Home and Pro, version 22H2 Windows 11 Enterprise Multi-Session, version 22H2 Windows 11 Enterprise and Education, version 22H2 Windows 11 IoT Enterprise, version 22H2 Windows 11 SE, version 23H2 Windows 11 Home and Pro, version 23H2 Windows 11 Enterprise and Education, version 23H2 Windows 11 Enterprise Multi-Session, version 23H2 Windows 11 SE, version 24H2 Windows 11 Enterprise and Education, version 24H2 Windows 11 Enterprise Multi-Session, version 24H2 Windows 11 Home and Pro, version 24H2 Windows 11 IoT Enterprise, version 24H2 Windows Server 2012 ESU Windows Server 2012 R2 ESU Windows Server 2016 Windows Server 2019 Windows Server 2022 Windows Server 2025

Вихідна дата публікації: 17 листопада 2025 р.

Ідентифікатор KB: 5072718

Зразок сценарію збирання даних реєстру безпечного завантаження

Скопіюйте та вставте цей зразок сценарію та змініть його, якщо потрібно, для середовища: Зразок сценарію збирання даних реєстру безпечного завантаження.

Sample_Secure_Boot_Inventory_Data_Collection_script

# 1. HostName # ВЕРСІЯ PS: Всі | Admin: Ні | Вимоги до системи: немає спробуйте {     $hostname = $env:ІМ'Я КОМП'ЮТЕРА     якщо ([рядок]::IsNullOrEmpty($hostname)) {         Write-Warning "Не вдалося визначити ім'я хоста"         $hostname = "Невідомо"     } (})     Write-Host "Ім'я хоста: $hostname" } зловити {     Write-Warning "Помилка отримання імені хоста: $_"     $hostname = "Помилка"     Write-Host "Ім'я хоста: $hostname" }

# 2. CollectionTime # ВЕРСІЯ PS: Всі | Admin: Ні | Вимоги до системи: немає спробуйте {     $collectionTime = Get-Date     якщо ($null -eq $collectionTime) {         Write-Warning "Не вдалося отримати поточну дату й час"         $collectionTime = "Невідомо"     } (})     Write-Host "Час збирання: $collectionTime" } зловити {     Write-Warning "Помилка отримання дати й часу: $_"     $collectionTime = "Помилка"     Write-Host "Час збирання: $collectionTime" }

# Registry: Secure Boot Main Key (3 values)

# 3. SecureBootEnabled # ВЕРСІЯ PS: 3.0+ | Admin: може знадобитися | Системні вимоги: система з підтримкою UEFI/безпечного завантаження спробуйте {     $secureBootEnabled = Confirm-SecureBootUEFI -ErrorAction Stop     Write-Host "Безпечне завантаження ввімкнуто: $secureBootEnabled" } зловити {     Write-Warning "Не вдалося визначити стан безпечного завантаження за допомогою командлета: $_"     # Спробуйте резервний реєстр     спробуйте {         $regValue = Get-ItemProperty -шлях "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\State" -Name UEFISecureBootEnabled -ErrorAction Stop         $secureBootEnabled = [bool]$regValue.UEFISecureBootEnabled         Write-Host "Безпечне завантаження ввімкнуто: $secureBootEnabled"     } зловити {         Write-Warning "Не вдалося визначити стан безпечного завантаження за допомогою реєстру. Система може не підтримувати UEFI/безпечне завантаження."         $secureBootEnabled = $null         Write-Host "Безпечне завантаження ввімкнуто: недоступно"     } (}) }

# 4. HighConfidenceOptOut # ВЕРСІЯ PS: Всі | Admin: може знадобитися | Вимоги до системи: немає спробуйте {     $regValue = Get-ItemProperty -шлях "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot" -Name HighConfidenceOptOut -ErrorAction Stop     $highConfidenceOptOut = $regValue.HighConfidenceOptOut     Write-Host "Висока впевненість відмовитися: $highConfidenceOptOut" } зловити {     Write-Warning "Розділ реєстру HighConfidenceOptOut не знайдено або недоступний"     $highConfidenceOptOut = $null     Write-Host "Висока впевненість відмовитися: недоступно" }

# 5. AvailableUpdates # ВЕРСІЯ PS: Всі | Admin: може знадобитися | Вимоги до системи: немає спробуйте {     $regValue = Get-ItemProperty -шлях "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot" -Name AvailableUpdates -ErrorAction Stop     $availableUpdates = $regValue.AvailableUpdates     якщо ($null -ne $availableUpdates) {         # Перетворити на шістнадцятковий формат         $availableUpdatesHex = "0x{0:X}" -f $availableUpdates         Write-Host "Доступні Оновлення: $availableUpdatesHex"     } інакше {         Write-Host "Доступний Оновлення: недоступно"     } (}) } зловити {     Write-Warning "Розділ реєстру AvailableUpdates не знайдено або недоступний"     $availableUpdates = $null     Write-Host "Доступний Оновлення: недоступний" }

# Registry: Servicing Key (3 values)

# 6. UEFICA2023Status # ВЕРСІЯ PS: Всі | Admin: може знадобитися | Вимоги до системи: немає спробуйте {     $regValue = Get-ItemProperty -шлях "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\Servicing" -Name UEFICA2023Status -ErrorAction Stop     $uefica 2023Status = $regValue.UEFICA2023Status     Write-Host "Стан UEFI CA 2023: $uefica 2023Status" } зловити {     Write-Warning "Розділ реєстру UEFICA2023Status не знайдено або недоступний"     $uefica 2023Status = $null     Write-Host "Стан UEFI CA 2023: недоступний" }

# 7. UEFICA2023Capable # ВЕРСІЯ PS: Всі | Admin: може знадобитися | Вимоги до системи: немає спробуйте {     $regValue = Get-ItemProperty -шлях "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\Servicing" -Name UEFICA2023Capable -ErrorAction Stop     $uefica 2023Capable = $regValue.UEFICA2023Capable     Write-Host "UEFI CA 2023 Здатний: $uefica 2023Capable" } зловити {     Write-Warning "Розділ реєстру UEFICA2023Capable не знайдено або недоступний"     $uefica 2023Capable = $null     Write-Host "UEFI CA 2023 здатний: недоступний" }

# 8. UEFICA2023Error # ВЕРСІЯ PS: Всі | Admin: може знадобитися | Вимоги до системи: немає спробуйте {     $regValue = Get-ItemProperty -шлях "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\Servicing" -Name UEFICA2023Error -ErrorAction Stop     $uefica 2023Error = $regValue.UEFICA2023Error     Write-Host "Помилка UEFI CA 2023: $uefica 2023Помилка" } зловити {     Write-Warning "Розділ реєстру UEFICA2023Error не знайдено або недоступний"     $uefica 2023Помилка = $null     Write-Host "Помилка UEFI CA 2023: недоступно" }

# Registry: Device Attributes (7 values)

# 9. OEMManufacturerName # ВЕРСІЯ PS: Всі | Admin: може знадобитися | Вимоги до системи: немає спробуйте {     $regValue = Get-ItemProperty -шлях "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OEMManufacturerName -ErrorAction Stop     $oemManufacturerName = $regValue.OEMManufacturerName     якщо ([рядок]::IsNullOrEmpty($oemManufacturerName)) {         Write-Warning "OEMManufacturerName пусте"         $oemManufacturerName = "Невідомо"     } (})     Write-Host "Назва виробника оригінального обладнання: $oemManufacturerName" } зловити {     Write-Warning "Розділ реєстру OEMManufacturerName не знайдено або недоступний"     $oemManufacturerName = $null     Write-Host "Назва виробника оригінального обладнання: недоступний" }

# 10. OEMModelSystemFamily # ВЕРСІЯ PS: Всі | Admin: може знадобитися | Вимоги до системи: немає спробуйте {     $regValue = Get-ItemProperty -шлях "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OEMModelSystemFamily -ErrorAction Stop     $oemModelSystemFamily = $regValue.OEMModelSystemFamily     якщо ([рядок]::IsNullOrEmpty($oemModelSystemFamily)) {         Write-Warning "OEMModelSystemFamily пустий"         $oemModelSystemFamily = "Невідомо"     } (})     Write-Host "Сімейство системи моделі OEM: $oemModelSystemFamily" } зловити {     Write-Warning "Розділ реєстру OEMModelSystemFamily не знайдено або недоступний"     $oemModelSystemFamily = $null     Write-Host "Сімейство системи моделі OEM: недоступно" }

# 11. OEMModelNumber # ВЕРСІЯ PS: Всі | Admin: може знадобитися | Вимоги до системи: немає спробуйте {     $regValue = Get-ItemProperty -шлях "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OEMModelNumber -ErrorAction Stop     $oemModelNumber = $regValue.OEMModelNumber     якщо ([рядок]::IsNullOrEmpty($oemModelNumber)) {         Write-Warning "OEMModelNumber пустий"         $oemModelNumber = "Невідомо"     } (})     Write-Host "Номер моделі OEM: $oemModelNumber" } зловити {     Write-Warning "Розділ реєстру OEMModelNumber не знайдено або недоступний"     $oemModelNumber = $null     Write-Host "Номер моделі OEM: недоступно" }

# 12. FirmwareVersion # ВЕРСІЯ PS: Всі | Admin: може знадобитися | Вимоги до системи: немає спробуйте {     $regValue = Get-ItemProperty -шлях "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name FirmwareVersion -ErrorAction Stop     $firmwareVersion = $regValue.FirmwareVersion     якщо ([рядок]::IsNullOrEmpty($firmwareVersion)) {         Write-Warning "FirmwareVersion пустий"         $firmwareVersion = "Невідомо"     } (})     Write-Host "Версія мікропрограми: $firmwareVersion" } зловити {     Write-Warning "Розділ реєстру FirmwareVersion не знайдено або недоступний"     $firmwareVersion = $null     Write-Host "Версія мікропрограми: недоступна" }

# 13. FirmwareReleaseDate # ВЕРСІЯ PS: Всі | Admin: може знадобитися | Вимоги до системи: немає спробуйте {     $regValue = Get-ItemProperty -шлях "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name FirmwareReleaseDate -ErrorAction Stop     $firmwareReleaseDate = $regValue.FirmwareReleaseDate     якщо ([рядок]::IsNullOrEmpty($firmwareReleaseDate)) {         Write-Warning "FirmwareReleaseDate пустий"         $firmwareReleaseDate = "Невідомо"     } (})     Write-Host "Дата випуску мікропрограми: $firmwareReleaseDate" } зловити {     Write-Warning "Розділ реєстру FirmwareReleaseDate не знайдено або недоступний"     $firmwareReleaseDate = $null     Write-Host "Дата випуску мікропрограми: недоступний" }

# 14. OSArchitecture # ВЕРСІЯ PS: Всі | Admin: Ні | Вимоги до системи: немає спробуйте {     $osArchitecture = $env:PROCESSOR_ARCHITECTURE     якщо ([рядок]::IsNullOrEmpty($osArchitecture)) {         # Спробуйте резервний реєстр         $regValue = Get-ItemProperty -шлях "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OSArchitecture -ErrorAction Stop         $osArchitecture = $regValue.OSArchitecture     } (})     якщо ([рядок]::IsNullOrEmpty($osArchitecture)) {         Write-Warning "Не вдалося визначити параметр OSArchitecture"         $osArchitecture = "Невідомо"     } (})     Write-Host "Архітектура ОС: $osArchitecture" } зловити {     Write-Warning "Помилка отриманняархівації ОС: $_"     $osArchitecture = "Невідомо"     Write-Host "Архітектура ОС: $osArchitecture" }

# 15. CanAttemptUpdateAfter (FILETIME) # ВЕРСІЯ PS: Всі | Admin: може знадобитися | Вимоги до системи: немає спробуйте {     $regValue = Get-ItemProperty -шлях "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name CanAttemptUpdateAfter -ErrorAction Stop     $canAttemptUpdateAfter = $regValue.CanAttemptUpdateAfter     # Перетворити FILETIME на dateTime, якщо це припустиме число     якщо ($null -ne $canAttemptUpdateAfter -і $canAttemptUpdateAfter -is [long]) {         спробуйте {             $canAttemptUpdateAfter = [Дата й час]::FromFileTime($canAttemptUpdateAfter)         } зловити {             Write-Warning "Не вдалося перетворити CanAttemptUpdateAfter FILETIME на DateTime"         } (})     } (})     Write-Host "Може спробувати оновити після: $canAttemptUpdateAfter" } зловити {     Write-Warning "CanAttemptUpdateAfter registry key not found or inaccessible"     $canAttemptUpdateAfter = $null     Write-Host "Може спробувати оновити після: недоступний" }

# Event Logs: System Log (5 values)

# 16-20. Event Log queries # ВЕРСІЯ PS: 3.0+ | Admin: може знадобитися для системного журналу | Вимоги до системи: немає спробуйте {     $allEventIds = @(1801, 1808)     $events = @(Get-WinEvent -FilterHashtable @{LogName='System'; ID=$allEventIds} - MaxEvents 20 -ErrorAction Stop)

    if ($events.Count -eq 0) {         Write-Warning "У системному журналі не знайдено подій безпечного завантаження (1801/1808)         $latestEventId = $null         $bucketId = $null         $confidence = $null         $event 1801Count = 0         $event 1808Count = 0         Write-Host "Найновіший ідентифікатор події: недоступно"         Write-Host "Код сегмента: недоступний"         Write-Host "Впевненість: недоступно"         Write-Host "Подія 1801 Count: 0"         Write-Host "Подія 1808 Count: 0"     } інакше {         # 16. LatestEventId (Найновіший ідентифікатор)         $latestEvent = $events | Sort-Object час, створений за спаданням | Select-Object –перший 1         якщо ($null -eq $latestEvent) {             Write-Warning "Не вдалося визначити останню подію"             $latestEventId = $null             Write-Host "Найновіший ідентифікатор події: недоступно"         } інакше {             $latestEventId = $latestEvent.Id             Write-Host "Найновіший ідентифікатор події: $latestEventId"         }

        # 17. BucketID - Extracted from Event 1801/1808 якщо ($null -ne $latestEvent -and $null -ne $latestEvent.Message) {             якщо ($latestEvent.Message -match 'BucketId:\s*(.+)') {                 $bucketId = $matches[1]. Trim()                 Write-Host "Код сегмента: $bucketId"             } інакше {                 Write-Warning "Код bucketId не знайдено в повідомленні про подію"                 $bucketId = $null                 Write-Host "Код сегмента: не знайдено у події"             } (})         } інакше {             Write-Warning "Остання подія або повідомлення має null-значення, не вдалося видобути BucketId"             $bucketId = $null             Write-Host "Код сегмента: недоступний"         }

        # 18. Confidence - Extracted from Event 1801/1808 якщо ($null -ne $latestEvent -and $null -ne $latestEvent.Message) {             якщо ($latestEvent.Message -match 'BucketConfidenceLevel:\s*(.+)') {                 $confidence = $matches[1]. Trim()                 Write-Host "Впевненість: $confidence"             } інакше {                 Write-Warning "У повідомленні про подію не знайдено довірчий рівень"                 $confidence = $null                 Write-Host "Впевненість: не знайдено у події"             } (})         } інакше {             Write-Warning "Остання подія або повідомлення має null-значення, не вдалося видобути довіру"             $confidence = $null             Write-Host "Впевненість: недоступно"         }

        # 19. Event1801Count $event 1801Array = @($events | Where-Object {$_. Id -eq 1801})         $event 1801Count = $event 1801Array.Count         Write-Host "Кількість подій 1801: $event 1801Count"

        # 20. Event1808Count $event 1808Array = @($events | Where-Object {$_. Id -eq 1808})         $event 1808Count = $event 1808Array.Count         Write-Host "Кількість подій 1808: $event 1808Count"     } (}) } зловити {     Write-Warning "Помилка отримання журналів подій. Може вимагати права адміністратора: $_"     $latestEventId = $null     $bucketId = $null     $confidence = $null     $event 1801Count = 0     $event 1808Count = 0     Write-Host "Найновіший ідентифікатор події: помилка"     Write-Host "Код сегмента: помилка"     Write-Host "Впевненість: помилка"     Write-Host "Подія 1801 Count: 0"     Write-Host "Подія 1808 Count: 0" }

# WMI/CIM Queries (4 values)

# 21. OSVersion # ВЕРСІЯ PS: 3.0+ (використовуйте Get-WmiObject для 2.0) | Admin: Ні | Вимоги до системи: немає спробуйте {     $osInfo = Get-CimInstance Win32_OperatingSystem -ErrorAction Stop     якщо ($null -eq $osInfo -або [рядок]::IsNullOrEmpty($osInfo.Version)) {         Write-Warning "Не вдалося отримати версію ОС"         $osVersion = "Невідомо"     } інакше {         $osVersion = $osInfo.Version     } (})     Write-Host "Версія ОС: $osVersion" } зловити {     Write-Warning "Помилка отримання версії ОС: $_"     $osVersion = "Невідомо"     Write-Host "Версія ОС: $osVersion" }

# 22. LastBootTime # ВЕРСІЯ PS: 3.0+ (використовуйте Get-WmiObject для 2.0) | Admin: Ні | Вимоги до системи: немає спробуйте {     $osInfo = Get-CimInstance Win32_OperatingSystem -ErrorAction Stop     якщо ($null -eq $osInfo -або $null -eq $osInfo.LastBootUpTime) {         Write-Warning "Не вдалося отримати час останнього завантаження"         $lastBootTime = $null         Write-Host "Час останнього завантаження: недоступний"     } інакше {         $lastBootTime = $osInfo.LastBootUpTime         Write-Host "Час останнього завантаження: $lastBootTime"     } (}) } зловити {     Write-Warning "Помилка отримання часу останнього завантаження: $_"     $lastBootTime = $null     Write-Host "Час останнього завантаження: недоступний" }

# 23. BaseBoardManufacturer # ВЕРСІЯ PS: 3.0+ (використовуйте Get-WmiObject для 2.0) | Admin: Ні | Вимоги до системи: немає спробуйте {     $baseBoard = Get-CimInstance Win32_BaseBoard -ErrorAction Stop     якщо ($null -eq $baseBoard -або [рядок]::IsNullOrEmpty($baseBoard.Manufacturer)) {         Write-Warning "Не вдалося отримати виробника базової плати"         $baseBoardManufacturer = "Невідомо"     } інакше {         $baseBoardManufacturer = $baseBoard.Manufacturer     } (})     Write-Host "Виробник базової плати: $baseBoardManufacturer" } зловити {     Write-Warning "Помилка отримання базового виробника: $_"     $baseBoardManufacturer = "Невідомо"     Write-Host "Виробник базової плати: $baseBoardManufacturer" }

# 24. BaseBoardProduct # ВЕРСІЯ PS: 3.0+ (використовуйте Get-WmiObject для 2.0) | Admin: Ні | Вимоги до системи: немає спробуйте {     $baseBoard = Get-CimInstance Win32_BaseBoard -ErrorAction Stop     якщо ($null -eq $baseBoard -або [рядок]::IsNullOrEmpty($baseBoard.Product)) {         Write-Warning "Не вдалося отримати базовий продукт"         $baseBoardProduct = "Невідомо"     } інакше {         $baseBoardProduct = $baseBoard.Product     } (})     Write-Host "Базовий продукт: $baseBoardProduct" } зловити {     Write-Warning "Помилка отримання базового продукту: $_"     $baseBoardProduct = "Невідомо"     Write-Host "Базовий продукт: $baseBoardProduct"}

Потрібна додаткова довідка?

Потрібні додаткові параметри?

Ознайомтеся з перевагами передплати, перегляньте навчальні курси, дізнайтесь, як захистити свій пристрій тощо.