Зразок посібника з автоматизації безпечного завантаження E2E
Застосовується до
Вихідна дата публікації: 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)
-
Правильний ключ для розгортання на основі політики
назад до розділу "Довідка з настройок Оновлення сертифікатів"
WinCSFlags – позначки системи конфігурації Windows
Адміністратори домену можуть також використовувати систему конфігурації Windows (WinCS), випущену з оновленнями ОС Windows, щоб розгортати оновлення безпечного завантаження для клієнтів і серверів Windows, підключених до домену. Вона складається з утиліти інтерфейсу командного рядка (CLI) для запиту та застосування локальних конфігурацій безпечного завантаження до комп'ютера.
|
Назвою функції |
Клавіша WinCS |
Опис |
|
Feature_AllKeysAndBootMgrByWinCS |
F33E0C8E002 |
Увімкнення цього ключа дає змогу інсталювати на пристрої нові сертифікати безпечного завантаження, надані корпорацією Майкрософт.
|
Довідка: API-інтерфейси API системи конфігурації Windows (WinCS) для безпечного завантаження
назад до розділу "Довідка з настройок Оновлення сертифікатів"
Архітектура
Етап 1. Моніторинг виявлення та стану на рівні підприємства
У цьому розділі
Сценарії, потрібні для етапу 1
Sample Secure Boot Inventory Data Collection scripts
|
Зразок імені сценарію |
Мета |
Виконується |
|
Збирає дані про стан пристрою |
Кожна кінцева точка (за допомогою GPO) |
|
|
Створення звітів і приладних дощок |
робоча станція Admin |
|
|
Автоматизація створення об'єктів групової політики для збирання даних |
Контролер домену |
назад до "Фаза 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: виявлення та моніторинг стану на рівні підприємства"
Розгортання 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
|
Ім'я зразка сценарію |
Мета |
Підтримувані ОС |
|
Збирає дані про стан пристрою |
Кожна кінцева точка (за допомогою GPO) |
|
|
Створення звітів і приладних дощок |
робоча станція Admin |
|
|
Автоматизація створення об'єктів групової політики для збирання даних |
Контролер домену |
|
|
Повне автоматизоване безперервне оркестрування з автоматичним розгортанням GPO для інсталяції сертифіката |
робоча станція Admin |
|
|
Розгортання сценарію Orchestrator як запланованого завдання для автоматичного розгортання |
Контролер домену |
|
|
Переглянути стан розгортання сертифіката безпечного завантаження з будь-якої робочої станції |
робоча станція Admin |
|
|
Увімкнення завдання оновлення безпечного завантаження |
У кінцевих точках, де завдання вимкнуто (Запустіть лише один раз, щоб увімкнути завдання, якщо його вимкнуто) |
назад до "Фаза 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"). Розраховувати
Етап 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" # Стан має відображатися як "Завершено"
Files стану
Orchestrator підтримує стан у ReportBasePath\RolloutState\:
|
Файл |
Опис |
|
RolloutState.json |
Журнал хвиль, цільові пристрої, стан |
|
BlockedBuckets.json |
Блоки, які потребують дослідження |
|
DeviceHistory.json |
Відстеження пристроїв за іменем хоста |
|
Orchestrator_YYYYMMDD.log |
Журнали щоденних дій |
Виправлення неполадок
У цьому розділі
Не виконується процес orchestrator
-
Перевірка запланованого завдання
Get-ScheduledTask -TaskName "SecureBoot-Rollout-Orchestrator"
-
Перевірка журналів
Get-Content "C:\SecureBootReports\RolloutState\Orchestrator_*.log" -Tail 50
-
Перевірка актуальності даних JSON
(Get-ChildItem "\\server\SecureBootData$" -Filter "*.json" | Where-Object { $_.LastWriteTime -gt (Get-Date).AddDays(-1) }).Count
Заблоковані блоки
-
Список заблоковано.
.\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -ListBlockedBuckets
-
Перевірте доступність пристрою.
-
Перевірте наявність проблем із мікропрограмою.
-
Розблокувати після розслідування.
Об'єкт групової розсилки не застосовується
-
Переконайтеся, що об'єкт групової безпеки існує.
Get-GPO -Name "SecureBoot-Rollout-Wave*"
-
Перевірте фільтрування безпеки.
Get-GPPermission -Name "GPO-Name" -All
-
Переконайтеся, що комп'ютер у групі безпеки.
-
Застосуйте об'єкт групової замовлення до цільового об'єкта.
gpupdate /force