Застосовується до
Windows 10, version 1607, all editions Win 10 Ent LTSB 2016 Win 10 IoT Ent LTSB 2016 Windows 10, version 1809, all editions Win 10 Ent LTSC 2019 Win 10 IoT Ent LTSC 2019 Windows 10 ESU Windows 10 Enterprise LTSC 2021 Windows 10 IoT Enterprise LTSC 2021 Windows 11 version 23H2, all editions Windows 11 version 24H2, all editions Windows 11 version 25H2, all editions Windows 11 version 26H1, all editions Windows Server 2016 Windows Server 2019 Windows Server 2022 Windows Server, version 23H2 Windows Server 2025

Вихідна дата публікації: 16 березня 2026 р.

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

У цій статті

Огляд

У цьому посібнику описано систему автоматичного розгортання для оновлень сертифіката бази даних безпечного завантаження Windows за допомогою Групова політика та прогресивних хвиль розгортання.

Автоматизація розгортання сертифіката безпечного завантаження – це система на основі PowerShell, яка розгортає оновлення сертифіката бази даних безпечного завантаження Windows на комп'ютерах, підключених до домену, контрольованим і градієнтним способом.

догори

Основні функції

Функція

Опис

Випускне розгортання

1 > 2 > 4 > 8... пристрої на сегмент

Автоматичне блокування

Блоки з недоступними пристроями виключаються

Автоматичне розгортання GPO

Сценарій одного оркестратора обробляє все

Заплановане виконання завдання

Інтерактивні запити не потрібні

Моніторинг у реальному часі

Засіб перегляду станів із індикатором перебігу виконання

догори 

Довідка з параметрів Оновлення сертифікатів

У цьому розділі

AvailableUpdatesPolicy Group policy

Розташування реєстру

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecureBoot

Ім’я

AvailableUpdatesPolicy

Значення

0x5944 (DWORD)

Це ключ, керований GPO або ADMX:

  • Зберігається під час перезавантаження

  • Установлення за Групова політика / MDM

  • Не призводить до повторення циклів (за допомогою ClearRolloutFlags)

  • Правильний ключ для розгортання на основі політики

Довідка: метод Групова політика Objects (GPO) безпечного завантаження для пристроїв Windows з оновленнями під керуванням ІТ

назад до розділу "Довідка з настройок Оновлення сертифікатів" 

WinCSFlags – позначки системи конфігурації Windows

Адміністратори домену можуть також використовувати систему конфігурації Windows (WinCS), випущену з оновленнями ОС Windows, щоб розгортати оновлення безпечного завантаження для клієнтів і серверів Windows, підключених до домену. Вона складається з утиліти інтерфейсу командного рядка (CLI) для запиту та застосування локальних конфігурацій безпечного завантаження до комп'ютера.

Назвою функції

Клавіша WinCS

Опис

Feature_AllKeysAndBootMgrByWinCS

F33E0C8E002

Увімкнення цього ключа дає змогу інсталювати на пристрої нові сертифікати безпечного завантаження, надані корпорацією Майкрософт.

  • Microsoft Corporation KEK 2K CA 2023

  • Windows UEFI CA 2023

  • Microsoft UEFI CA 2023

  • Microsoft Option UEFI ROM CA 2023

Довідка: API-інтерфейси API системи конфігурації Windows (WinCS) для безпечного завантаження

назад до розділу "Довідка з настройок Оновлення сертифікатів"

догори

Архітектура

Робочий цикл архітектури

догори 

Етап 1. Моніторинг виявлення та стану на рівні підприємства

У цьому розділі

Сценарії, потрібні для етапу 1

Sample Secure Boot Inventory Data Collection scripts

Зразок імені сценарію

Мета 

Виконується 

Зразок сценарію Detect-SecureBootCertUpdateStatus.ps1 

Збирає дані про стан пристрою 

Кожна кінцева точка (за допомогою GPO) 

Зразок сценарію Aggregate-SecureBootData.ps1 

Створення звітів і приладних дощок 

робоча станція Admin 

Зразок сценарію Deploy-GPO-SecureBootCollection.ps1

Автоматизація створення об'єктів групової політики для збирання даних 

Контролер домену 

Приладна дошка стану сертифіката безпечного завантаження

назад до "Фаза 1: виявлення та моніторинг стану на рівні підприємства"

Локальне тестування

Перед розгортанням за допомогою GPO перевірте функціональність сценарію колекції на одному комп'ютері. 

  • Запуск сценарію колекції локально Відкрийте запит PowerShell у режимі адміністратора та виконайте:

    & .\Detect-SecureBootCertUpdateStatus.ps1 -OutputPath "C:\Temp\SecureBootTest" 

  • Перевірка виводу JSON

    # View the collected data  Get-Content "C:\Temp\SecureBootTest\*_latest.json" | ConvertFrom-Json | Format-List

    Ключові поля для перевірки  SecureBootEnabled – має бути true або False OverallStatus – complete, ReadyForUpdate, NeedsData або Error BucketHash – блок пристрою для зіставлення достовірних даних • SecureBootTaskEnabled – відображає стан завдання оновлення безпечного завантаження.

  • Перевірити сценарій агрегації

    # Generate reports from collected data  & .\Aggregate-SecureBootCertStatus.ps1" "     -InputPath "C:\Temp\SecureBootTest" '     -OutputPath "C:\Temp\SecureBootReports" # Відкрийте приладну дошку HTML   

    Start-Process "C:\Temp\SecureBootReports\SecureBoot_Dashboard_*.html"

назад до "Фаза 1: виявлення та моніторинг стану на рівні підприємства" 

Настроювання спільного доступу до мережі

  • Створення мережевого спільного доступу Створіть на файловому сервері виділений спільний доступ для збирання даних:

    # Run on file server as Administrator  $SharePath = "D:\SecureBootCollection" $ShareName = "SecureBootData$" # Створення папки New-Item -ItemType Directory – шлях $SharePath -Force # Створення прихованого спільного ресурсу ($ суфікс приховує зі списку перегляду) New-SmbShare -Name $ShareName -Path $SharePath '     -Description "Secure Boot Certificate Status Collection" (Колекція стану сертифіката безпечного завантаження)     -FullAccess "Адміністратори домену" '     -ChangeAccess "Автентифіковані користувачі"    

  • Настроювання дозволів NTFS

    # Get current ACL  $Acl = Get-Acl $SharePath # Дозволити автентифікованим користувачам записувати файли $WriteRule = New-Object System.Security.AccessControl.FileSystemAccessRule(     "Автентифіковані користувачі",     "CreateFiles,AppendData,WriteAttributes,WriteExtendedAttributes",     "ContainerInherit,ObjectInherit",     "Немає",     "Дозволити" ) $Acl.AddAccessRule($WriteRule) # Дозволити адміністраторам домену повний доступ (для агрегації) $AdminRule = New-Object System.Security.AccessControl.FileSystemAccessRule(     "Адміністратори доменів",     "Повне керування",     "ContainerInherit,ObjectInherit",     "Немає",     "Дозволити" ) $Acl.AddAccessRule($AdminRule) # Застосування дозволів Set-Acl -Path $SharePath -AclObject $Acl       

  • Перевірка спільного доступу

    # Test from a domain-joined workstation  Test-Path "\\fileserver\SecureBootData$" # Має повернутися: True

назад до "Фаза 1: виявлення та моніторинг стану на рівні підприємства" 

Розгортання GPO

Скористайтеся сценарієм автоматизації, наданим з контролера домену:

# Запуск на контролері домену як Admin домену для інтерактивного розділу підрозділу підрозділу – рекомендовано # Замініть "Contoso.com", "Contoso" на ім'я домену # Замініть FILESERVER іменем файлового сервера.  Script shows list of OUs to deploy GPO on .\Deploy-GPO-SecureBootCollection.ps1 '     -DomainName "contoso.com" "     -AutoDetectOU '     -CollectionSharePath "\\FILESERVER\SecureBootLogs$" '     -ScriptSourcePath ".\Detect-SecureBootCertUpdateStatus.ps1" "     -Schedule "Daily" ( Щоденно)     -Час розкладу "14:00" "     -RandomDelayHours 4 

Цей сценарій виконуватиме такі дії:

  • Створення нової об'єктна об

  • Копіювання сценарію колекції до SYSVOL для високої доступності

  • Настроювання сценарію запуску комп'ютера

  • Посилання GPO на цільовий OU

  • За потреби створює заплановане завдання для періодичної колекції

У таблиці нижче наведено вказівки щодо тривалості затримки залежно від розміру вашого флоту.

Розмір флоту 

Діапазон затримок 

Пристрої з 1 по 10K 

4 години 

Пристрої з 10K-50K 

8 годин 

50K+ пристроїв 

12-24 год.

назад до "Фаза 1: виявлення та моніторинг стану на рівні підприємства" 

Зведення настройок GPO

Параметр 

Розташування 

Значення 

Сценарій запуску 

Сценарії конфігурації комп'ютера → 

Detect-SecureBootCertUpdateStatus.ps1 

Параметри сценарію 

(те саме) 

-OutputPath "\\server\share$" 

Політика виконання 

Шаблони конфігурації комп'ютера → Admin → PowerShell 

Дозволити локальний і віддалений вхід 

Заплановане завдання 

Конфігурація комп'ютера → параметри → запланованих завдань 

Колекція "Щоденно/щотижнево"

назад до "Фаза 1: виявлення та моніторинг стану на рівні підприємства" 

Перевірка

  • Примусове оновлення GPO на test Machine

    ## On a test workstation  gpupdate /force # Перезавантажте клієнтські комп'ютери, щоб запустити сценарій, або він буде ініціювати на наступному графіку.  Restart-Computer -Force

  • Перевірка збирання даних

    # Перевірте, чи було зібрано дані (на файловому сервері або з будь-якого комп'ютера) Get-ChildItem "\\fileserver\SecureBootData$" |       Sort-Object LastWriteTime – за спаданням |       Select-Object -Перший 10   # Перевірка вмісту JSON Get-Content "\\fileserver\SecureBootData$\TESTPC_latest.json" | ConvertFrom-Json 

  • Перевірка застосунку GPO

    # Перевірка застосування об'єктної об gpresult /r /scope:computer | Select-String "SecureBoot" s Сценарій також зберігає локальну копію для резервування: Get-ChildItem "C:\ProgramData\SecureBootCollection\" 

назад до "Фаза 1: виявлення та моніторинг стану на рівні підприємства"

догори 

Етап 2. Сценарії оновлення сертифіката безпечного завантаження Orchestration

Увага!: Переконайтеся, що етап 1 завершено, включно зі збором даних у кожній кінцевій точці для віддалених спільних ресурсів сервера.

У цьому розділі

Сценарії, необхідні для етапу 2

Sample Secure Boot Inventory Data Collection scripts

Ім'я зразка сценарію

Мета 

Підтримувані ОС 

Зразок сценарію Detect-SecureBootCertUpdateStatus.ps1  

Збирає дані про стан пристрою 

Кожна кінцева точка (за допомогою GPO) 

Зразок сценарію Aggregate-SecureBootData.ps1

Створення звітів і приладних дощок 

робоча станція Admin 

Зразок сценарію Deploy-GPO-SecureBootCollection.ps1

Автоматизація створення об'єктів групової політики для збирання даних 

Контролер домену 

Зразок сценарію Start-SecureBootRolloutOrchestrator.ps1

Повне автоматизоване безперервне оркестрування з автоматичним розгортанням GPO для інсталяції сертифіката

робоча станція Admin 

Зразок сценарію Deploy-OrchestratorTask.ps1

Розгортання сценарію Orchestrator як запланованого завдання для автоматичного розгортання

Контролер домену

Зразок сценарію Get-SecureBootRolloutStatus.ps1

Переглянути стан розгортання сертифіката безпечного завантаження з будь-якої робочої станції

робоча станція Admin

Зразок сценарію Enable-SecureBootUpdateTask.ps1

 Увімкнення завдання оновлення безпечного завантаження

У кінцевих точках, де завдання вимкнуто (Запустіть лише один раз, щоб увімкнути завдання, якщо його вимкнуто)

назад до "Фаза 2: сценарії оновлення сертифіката безпечного завантаження Orchestration" 

Start-SecureBootRolloutOrchestrator.ps1

  • Мета: Повне автоматизоване безперервне оркестрування з автоматичним розгортанням GPO.

  • Результат

    • Виклики Aggregate-SecureBootData.ps1 для отримання стану пристрою

    • Створює хвилі розгортання за допомогою прогресивного подвоєння

    • Створення об'єктної об'єктної об'єктної мережі для розгортання сертифіката одним із наведених нижче способів

      • Політика безпечного завантаження групової політики AvailableUpdatesPolicy = 0x5944 (за замовчуванням)

      • Метод WinCS (параметр –UseWinCS)

    • Створення груп безпеки AD для націлювання

    • Додавання облікових записів комп'ютерів до груп безпеки

    • Настроювання фільтрування безпеки GPO

    • Посилання GPO на цільовий OU

    • Монітори заблокованих блоків (недоступні пристрої)

    • Автоматичне розблокування під час відновлення пристроїв

  • Використання

    # Interactive (testing) .\Start-SecureBootRolloutOrchestrator.ps1 '     -AggregationInputPath "\\fileserver\SecureBootData$" '     -ReportBasePath "C:\SecureBootReports"     -ОпитуванняІнтервальМінути 30

    # Interactive (testing), leveraging WinCS method .\Start-SecureBootRolloutOrchestrator.ps1 '     -AggregationInputPath "\\fileserver\SecureBootData$" '     -ReportBasePath "C:\SecureBootReports"     -PollIntervalMinutes 1440 -UseWinCS

  • команди Admin

    # List blocked buckets .\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -ListBlockedBuckets

    # Unblock specific bucket .\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -UnblockBucket "Dell|Широта5520|BIOS1.2"

    # Unblock all .\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -UnblockAll

  • Параметри

    Параметр

    За замовчуванням

    Опис

    AggregationInputPath

    Обов’язкові

    UNC-шлях до файлів JSON кінцевої точки

    ReportBasePath

    Обов’язкові

    Локальний шлях для звітів і стану

    Цільовий підрозділу

    Кореневий домен

    OU для зв'язування об'єкти групових політик

    Префікс хвилі

    SecureBoot-Rollout

    Префікс іменування GPO або груп

    MaxWaitHours (Максимальна кількість годин)

    72

    За кілька годин до перевірки доступності пристрою

    Ім'я запилів

    1440

    Хвилини між перевірками стану

    Засунути

    False

    Показати, що відбудеться без змін

назад до "Фаза 2: сценарії оновлення сертифіката безпечного завантаження Orchestration"  

Deploy-OrchestratorTask.ps1

  • Мета: Розгортання оркестратора як запланованого завдання Windows.

  • Переваги

    • Немає підказок системи безпеки PowerShell (обхід політики виконання)

    • Безперервне виконання у фоновому режимі

    • Взаємодія з користувачем не потрібна

    • Виживає після перезавантаження

  • Використання

    • Розгортання за допомогою облікового запису служби доменів (рекомендовано)

      • Використовувати Групова політика AvailableUpdates (метод за промовчанням)

        .\Deploy-OrchestratorTask.ps1 '     -AggregationInputPath "\\server\SecureBootData$" '     -ReportBasePath "C:\SecureBootReports"     -ServiceAccount "DOMAIN\svc_secureboot"

      • Використання методу WinCS

        .\Deploy-OrchestratorTask.ps1 '     -AggregationInputPath "\\server\SecureBootData$" '     -ReportBasePath "C:\SecureBootReports"     -ServiceAccount "DOMAIN\svc_secureboot" -UseWinCS

    • Розгортання за допомогою облікового запису SYSTEM

      • Використовувати Групова політика AvailableUpdates (метод за промовчанням)

        .\Deploy-OrchestratorTask.ps1 '     -AggregationInputPath "\\server\SecureBootData$" '     -ReportBasePath "C:\SecureBootReports"

      • Використання method.\Deploy-OrchestratorTask.ps1 WinCS

            -AggregationInputPath "\\server\SecureBootData$" '     -ReportBasePath "C:\SecureBootReports" -UseWinCS

      • Вимоги до облікового запису служби

        • Admin домену (для New-GPO, New-ADGroup, Add-ADGroupMember)

        • Читання доступу до спільного доступу до файлів JSON

        • Записування доступу до ReportBasePath

назад до "Фаза 2: сценарії оновлення сертифіката безпечного завантаження Orchestration"  

Get-SecureBootRolloutStatus.ps1

  • Мета: Перегляд перебігу розгортання з будь-якої робочої станції.

  • Що він показує

    • Стан запланованого завдання (запущено,готово/зупинено)

    • Номер поточної хвилі

    • Пристрої, цільові та оновлені

    • Панель візуальних перебігів

    • Зведення заблокованих блоків

    • Посилання на останню приладну дошку HTML

  • Використання

    # Quick status check .\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports"

    # Continuous monitoring (refreshes every 30 seconds) .\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports" -Watch 30

    # View blocked buckets .\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports" -ShowBlocked

    # View wave history .\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports" -ShowWaves

    # View recent log .\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports" -ShowLog

    # Open dashboard in browser .\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports" -OpenDashboard

  • Зразок виводу

    ==============================================================    СТАН РОЗГОРТАННЯ БЕЗПЕЧНОГО ЗАВАНТАЖЕННЯ    2026-02-17 19:30:00 ======================================================

    Scheduled Task: Running

    ROLLOUT PROGRESS ---------------------------------------- Стан: InProgress Поточна хвиля: 5 Всього цільових: 1250 Всього оновлено: 847

    Progress: [█████████████████████░░░░░░░░░░░░░░░░░░░] 67.8%

    BLOCKED BUCKETS: 2 buckets need attention   Запускати з -ShowBlocked для отримання додаткових відомостей

    LATEST DASHBOARD C:\SecureBootReports\Aggregation_20260217_193000\SecureBoot_Dashboard.html __________________________________________________________________________________________

назад до "Фаза 2: сценарії оновлення сертифіката безпечного завантаження Orchestration"

догори 

Кроки розгортання E2E (короткий посібник)

У цьому розділі

Етап 1. Інфраструктура виявлення

  • Крок 1. Створення спільного доступу до колекції

    # On file server $sharePath = "D:\SecureBootData" New-Item -ItemType Directory – шлях $sharePath -Force New-SmbShare -Ім'я "SecureBootData$" - Шлях $sharePath -FullAccess "Адміністратори домену" -ChangeAccess "Доменні комп'ютери"

    # Set NTFS permissions $acl = Get-Acl $sharePath $rule = New-Object System.Security.AccessControl.FileSystemAccessRule("Доменні комп'ютери","Змінити","Дозволити") $acl. AddAccessRule($rule) Set-Acl $sharePath $acl

  • Крок 2. Розгортання GPO виявлення

    .\Deploy-GPO-SecureBootCollection.ps1 `     -DomainName "contoso.com" "     -OUPath "OU=Workstations,DC=contoso,DC=com" '     -CollectionSharePath "\\server\SecureBootData$"

  • Крок 3. Очікування звітування кінцевих точок (24–48 годин)

    # Перевірка перебігу збирання (Get-ChildItem "\\server\SecureBootData$" -Filter "*.json"). Розраховувати

назад до "Кроки розгортання E2E (короткий посібник)" 

Етап 2. Організоване розгортання

  • Крок 4. Перевірка обов'язкових умов

    • Розгорнуто групову службу виявлення (крок 2)

    • Звітування про JSON принаймні 50+ кінцевих точок

    • Обліковий запис служби з правами на домен Admin

    • Сервер керування за допомогою PowerShell 5.1+

  • Крок 5. Розгортання Orchestrator як запланованого завдання

    .\Deploy-OrchestratorTask.ps1 `     -AggregationInputPath "\\server\SecureBootData$" '     -ReportBasePath "C:\SecureBootReports"     -ServiceAccount "DOMAIN\svc_secureboot"

  • Крок 6. Відстеження перебігу виконання

    .\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports"

  • Крок 7. Перегляд приладної дошки

    .\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports" -OpenDashboard

  • Крок 8. Керування заблокованими блоками

    # List blocked .\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -ListBlockedBuckets

    # Investigate and unblock .\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -UnblockBucket "Виробник|Модель|BIOS"

  • Крок 9. Перевірка виконання

    .\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports" # Стан має відображатися як "Завершено"

назад до "Кроки розгортання E2E (короткий посібник)"  

Files стану

Orchestrator підтримує стан у ReportBasePath\RolloutState\:

Файл

Опис

RolloutState.json

Журнал хвиль, цільові пристрої, стан

BlockedBuckets.json

Блоки, які потребують дослідження

DeviceHistory.json

Відстеження пристроїв за іменем хоста

Orchestrator_YYYYMMDD.log

Журнали щоденних дій

назад до "Кроки розгортання E2E (короткий посібник)" 

догори 

Виправлення неполадок

У цьому розділі

Не виконується процес orchestrator

  1. Перевірка запланованого завдання

    Get-ScheduledTask -TaskName "SecureBoot-Rollout-Orchestrator"

  2. Перевірка журналів

    Get-Content "C:\SecureBootReports\RolloutState\Orchestrator_*.log" -Tail 50

  3. Перевірка актуальності даних JSON

    (Get-ChildItem "\\server\SecureBootData$" -Filter "*.json" | Where-Object { $_.LastWriteTime -gt (Get-Date).AddDays(-1) }).Count

назад до розділу "Виправлення неполадок" 

Заблоковані блоки

  1. Список заблоковано.

    .\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -ListBlockedBuckets

  2. Перевірте доступність пристрою.

  3. Перевірте наявність проблем із мікропрограмою.

  4. Розблокувати після розслідування.

назад до розділу "Виправлення неполадок"  

Об'єкт групової розсилки не застосовується

  1. Переконайтеся, що об'єкт групової безпеки існує.

    Get-GPO -Name "SecureBoot-Rollout-Wave*"

  2. Перевірте фільтрування безпеки.

    Get-GPPermission -Name "GPO-Name" -All

  3. Переконайтеся, що комп'ютер у групі безпеки.

  4. Застосуйте об'єкт групової замовлення до цільового об'єкта.

    gpupdate /force

назад до розділу "Виправлення неполадок"

догори 

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

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

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