Sample Secure Boot E2E Automation Guide
Отнася се за
Първоначална дата на публикуване: 16 март 2026г. Последна актуализация: 3 април 2026Г.: 5084567
В тази статия
Общ преглед
Това ръководство описва автоматизираната система за разполагане за актуализации на DB сертификати на Windows Secure Boot с помощта на групови правила и прогресивни вълни на внедряване.
Автоматизирането на внедряването на сертификат за защитено стартиране е базирана на PowerShell система, която разполага актуализации на DB сертификати за защитено стартиране на Windows за присъединени към домейн машини по контролиран, градивен начин.
Основни функции
|
Функция |
Описание |
|
Развито внедряване |
1 > 2 > 4 > 8... устройства на набор |
|
Автоматично блокиране |
Наборите с недостъпни устройства се изключват |
|
Автоматизирано разполагане на GPO |
Скриптът на един оркестър обработва всичко |
|
Планирано изпълнение на задача |
Не са необходими интерактивни подкани |
|
Наблюдение в реално време |
Визуализатор на състоянието с лента на напредъка |
Препратка към настройките на Актуализации сертификат
В този раздел
Групови правила AvailableUpdatesPolicy
|
Местоположение на системния регистър |
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 |
Разрешаването на този ключ позволява инсталирането на следните предоставени от Microsoft нови сертификати за защитено стартиране на вашето устройство.
|
Справка: API на системата за конфигуриране на Windows (WinCS) за защитено стартиране
назад към "Препратка към настройките на Актуализации сертификат"
Архитектура
Етап 1: Наблюдение на откриването и състоянието на корпоративно ниво
В този раздел
Скриптове, необходими за фаза 1
Примерни скриптове за събиране на данни за защитено стартиране
|
Примерно име на скрипт |
Цел |
Изпълнява се на |
|
Събира данни за състоянието на устройството |
Всяка крайна точка (чрез GPO) |
|
|
Генерира отчети и табла |
работна станция на Администрация |
|
|
Автоматизира създаването на GPO за събиране на данни |
Домейнов контролер |
обратно към "Фаза 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 – завършено, ReadyForUpdate, NeedsData или грешка • BucketHash – Набор от устройства за съпоставяне на доверителни данни • SecureBootTaskEnabled - Показва състоянието на задачата за актуализация на защитеното стартиране.
-
Тестов скрипт за агрегиране
# Generate reports from collected data & ".\Aggregate-SecureBootData.ps1" -InputPath "C:\Temp\SecureBootTest" ' -OutputPath "C:\Temp\SecureBootReports" # Отваряне на HTML таблото Start-Process "C:\Temp\SecureBootReports\SecureBoot_Dashboard_*.html"
обратно към "Фаза 1: Откриване и мониторинг на състоянието на корпоративно ниво"
Разполагане на GPO
Използвайте скрипта за автоматизация, предоставен от домейнов контролер:
# Run on Domain Controller as Domain Администрация for interactive OU Section – Recommended # Заместете "Contoso.com", "Contoso" с името на домейна # Заместете FILESERVER с името на файловия сървър. Script shows list of OUs to deploy GPO on "\Deploy-GPO-SecureBootCollection.ps1" -DomainName "contoso.com" ' -AutoDetectOU ' -CollectionSharePath "\\FILESERVER\SecureBootData$" -ScriptSourcePath ".\Detect-SecureBootCertUpdateStatus.ps1" ' -Schedule "Daily" ' -ScheduleTime "14:00" -RandomDelayHours 4
Този скрипт ще изпълни следното:
-
Създава нов GPO със зададено име
-
Копира скрипта за събиране в SYSVOL за висока достъпност
-
Конфигурира скрипта за стартиране на компютъра
-
Връзки GPO към целева организаця
-
По желание създава планирана задача за периодично събиране
Таблицата по-долу дава указания колко дълго забавянето ще се базира на размера на вашия автомобил.
|
Размер на флота |
Диапазон на забавянето |
|
1-10K устройства |
4 часа |
|
10K-50K устройства |
8 часа |
|
Над 50 000 устройства |
12-24 часа |
обратно към "Фаза 1: Откриване и мониторинг на състоянието на корпоративно ниво"
Резюме на настройките на GPO
|
Настройка |
"Местоположение" |
Стойност |
|
Скрипт за стартиране |
Скриптове за конфигуриране на компютър → |
Detect-SecureBootCertUpdateStatus.ps1 |
|
Параметри на скрипта |
(същото) |
-OutputPath "\\сървър\share$" |
|
Правила за изпълнение |
Шаблони за конфигуриране → Администрация компютър → PowerShell |
Разрешаване на локално и отдалечено подписване |
|
Планирана задача |
Предпочитания за конфигуриране → компютър → планирани задачи |
Ежедневно/седмично събиране |
обратно към "Фаза 1: Откриване и мониторинг на състоянието на корпоративно ниво"
Потвърждаване
-
Принудително актуализиране на GPO на Test Machine
## On a test workstation gpupdate /force # Рестартирайте клиентските машини за стартиране на скрипт или той ще се задейства при следващ график. Restart-Computer -Force
-
Проверка на събирането на данни
# Проверете дали са събрани данни (на файловия сървър или от който и да е компютър) Get-ChildItem "\\fileserver\SecureBootData$" | Sort-Object LastWriteTime -Descending | Select-Object -първи 10 # Проверка на JSON съдържание Get-Content "\\fileserver\SecureBootData$\TESTPC_latest.json" | ConvertFrom-Json
-
Проверка на GPO приложение
# Проверка дали GPO е приложено към компютъра Select-String "SecureBoot" Скриптът записва и локално копие за излишък: Get-ChildItem "C:\ProgramData\SecureBootCollection\"
обратно към "Фаза 1: Откриване и мониторинг на състоянието на корпоративно ниво"
Фаза 2: Скриптове за организиране на актуализация на сертификат за защитено стартиране
Важно: Уверете се, че фаза1 е завършена, включително събирането на данни за всяка крайна точка към отдалечени сървърни дялове.
В този раздел
Скриптове, необходими за фаза 2
Примерни скриптове за събиране на данни за защитено стартиране
|
Примерно име на скрипт |
Цел |
Работи в |
|
Събира данни за състоянието на устройството |
Всяка крайна точка (чрез GPO) |
|
|
Генерира отчети и табла |
работна станция на Администрация |
|
|
Автоматизира създаването на GPO за събиране на данни |
Домейнов контролер |
|
|
Напълно автоматизирана непрекъсната оркестрация с автоматизирано разполагане на GPO за инсталиране на сертификати |
работна станция на Администрация |
|
|
Разполага скрипта на Orchestrator като планирана задача за автоматично внедряване |
Домейнов контролер |
|
|
Преглед на състоянието на издаване на сертификат за защитено стартиране от всяка работна станция |
Администрация Работна станция |
|
|
Разрешава задача за актуализиране на защитено стартиране |
В крайни точки, където задачата е забранена (Изпълнявай само веднъж, за да разрешите задачата, ако е забранена) |
обратно към "Фаза 2: Скриптове за организиране на актуализация на сертификат за защитено стартиране"
Start-SecureBootRolloutOrchestrator.ps1
-
Цел: Напълно автоматизирана, непрекъсната организиране с автоматизирано GPO разполагане.
-
Какво прави
-
Повиквания Aggregate-SecureBootData.ps1 за състоянието на устройството
-
Генерира вълни на внедряване с помощта на прогресивно удвояване
-
Създава GPO за разполагане на сертификат с помощта на един от следните методи
-
Групови правила за защитено стартиране AvailableUpdatesPolicy = 0x5944 (по подразбиране)
-
Метод WinCS (Параметър –UseWinCS)
-
-
Създава групи за защита на AD за насочване
-
Добавя компютърни акаунти към групи за защита
-
Конфигурира филтриране на защитата на GPO
-
Връзки GPO към целева организаця
-
Монитори за блокирани кофи (недостъпни устройства)
-
Автоматично разблокира, когато устройствата се възстановят
-
-
Употреба
# Interactive (testing) "\Start-SecureBootRolloutOrchestrator.ps1" -AggregationInputPath "\\fileserver\SecureBootData$" ' -ReportBasePath "C:\SecureBootReports" ' -PollIntervalMinutes 30
# Interactive (testing), leveraging WinCS method "\Start-SecureBootRolloutOrchestrator.ps1" -AggregationInputPath "\\fileserver\SecureBootData$" ' -ReportBasePath "C:\SecureBootReports" ' -PollIntervalMinutes 30 ' -ИзползвайтеWinCS
-
команди на Администрация
# 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" – Деблокиране на всички
-
Параметри
Параметър
По подразбиране
Описание
AggregationInputPath
Задължително
UNC път до JSON файлове на крайна точка
ReportBasePath
Задължително
Локален път за отчети и състояние
TargetOU
Корен на домейн
OU за свързване на GPO
WavePrefix
SecureBoot-Rollout
Префикс за наименуване на GPO/група
MaxWaitHours
72
Часове преди проверка на достъпността на устройството
Индикатори за анкета
1440
Минути между проверките на състоянието
DryRun
False
Показване на това, което ще се случи без промени
Бележка за анкетаIntervalMinutes: Когато организирате директно, стойността по подразбиране е 1440 минути (24 часа). Когато се разположи чрез Deploy-OrchestratorTask.ps1, стойността по подразбиране е 30 минути. Скриптът за разполагане предава собствен скрипт по подразбиране на оркестъра. Използвайте 30 минути за активно внедряване, 1440 за мониторинг на поддръжката.
Незадължителни параметри
Параметър
По подразбиране
Описание
Използване наWinCS
False
Използване на метода WinCS вместо AvailableUpdatesPolicy GPO
WinCSKey
F33E0C8E002
Ключ за WinCS за конфигурация на защитено стартиране
AllowListPath
(няма)
Път до файла с имена на хостове до ALLOW за целево/пилотно внедряване. Поддържа .txt или .csv.
Група AllowAD
(няма)
AD група за защита на компютърни акаунти на ALLOW. Пример: "SecureBoot-Pilot-Computers"
ExclusionListPath
(няма)
Път до файла с имена на хостове, които да се изключат от внедряването (VIP/executive устройства)
ExcludeADGroup
(няма)
AD група от компютърни акаунти за изключване. Пример: "VIP-Computers"
ListBlockedBuckets
False
Показване на блокирани в момента набори устройства
Разблокиране на разблокиране на разблокиране
(няма)
Деблокиране на определен набор. Формат: "Производител|Модел|"BIOS"
Разблокиране на всички
False
Разблокиране на всички блокирани набори устройства
обратно към "Фаза 2: Скриптове за организиране на актуализация на сертификат за защитено стартиране"
Deploy-OrchestratorTask.ps1
-
Цел: Разполага оркестъра като планирана задача на Windows.
-
Предимства
-
Няма подкани за защитата на PowerShell (ExecutionPolicy Bypass)
-
Непрекъснато изпълнява се във фонов режим
-
Не се изисква взаимодействие с потребителя
-
Оцелява при рестартиране
-
-
Употреба
-
Разполагане с акаунт на услугата за домейни (препоръчително)
-
Използване на групови правила 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
-
-
Разполагане със СИСТЕМЕН акаунт
-
Използване на групови правила AvailableUpdates (метод по подразбиране)
"\Deploy-OrchestratorTask.ps1" -AggregationInputPath "\\server\SecureBootData$" ' -ReportBasePath "C:\SecureBootReports"
-
Използване на WinCS method.\Deploy-OrchestratorTask.ps1
-AggregationInputPath "\\server\SecureBootData$" ' -ReportBasePath "C:\SecureBootReports" – UseWinCS
-
Изисквания към акаунта на услугата
-
Домейн Администрация (за New-GPO, New-ADGroup, Add-ADGroupMember)
-
Четене на достъпа до споделяне на JSON файлове
-
Достъп за писане в ReportBasePath
-
-
-
обратно към "Фаза 2: Скриптове за организиране на актуализация на сертификат за защитено стартиране"
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
-
Параметри
Параметър
Изисква?
По подразбиране
Описание
ReportBasePath
Задължително
—
Локален път до отчети и файлове за състояние
Дневник на слайдшоуто
Опционално
False
Показване на последните записи в регистрационния файл на orchestrator
ShowBlocked
Опционално
False
Показване на подробности за блокирани набори
Шоувиви домакини
Опционално
False
Показване на хронологията на вълните
Гледане
Опционално
0 (забранено)
Интервал на автоматично обновяване в секунди. Пример: -Watch 30 се обновява на всеки 30 секунди.
OpenDashboard
Опционално
False
Отваряне на най-новото HTML табло в браузъра по подразбиране
-
Примерен резултат
============================================================== СЪСТОЯНИЕ НА ВНЕДРЯВАНЕ НА ЗАЩИТЕНО СТАРТИРАНЕ 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: Скриптове за организиране на актуализация на сертификат за защитено стартиране"
Стъпки за разполагане на E2E (ръководство за бърза справка)
В този раздел
Етап 1: Инфраструктура за откриване
-
Стъпка 1: Създаване на споделяне на колекция
# On file server $sharePath = "D:\SecureBootData" New-Item - ItemType директория – път $sharePath – принудително New-SmbShare -Name "SecureBootData$" - Път $sharePath -FullAccess "Администратори на домейни" -ChangeAccess "Компютри с домейн"
# Set NTFS permissions $acl = Get-Acl $sharePath $rule = New-Object System.Security.AccessControl.FileSystemAccessRule("Domain Computers","Modify","Allow") $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: Проверка на предварителните изисквания
-
Разполагане на GPO за откриване (стъпка 2)
-
JSON за отчитане на най-малко 50+ крайни точки
-
Акаунт на услуга с права за домейн Администрация
-
Сървър за управление с 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 "Manufacturer|Модел|"BIOS"
-
Стъпка 9: Проверка на завършването
.\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports" # Състоянието трябва да показва "Завършена"
обратно към "Стъпки за разполагане на E2E (ръководство за бърза справка)"
Щат Files
Orchestrator поддържа състояние в ReportBasePath\RolloutState\:
|
Файл |
Описание |
|
RolloutState.json |
Хронология на вълните, целеви устройства, състояние |
|
BlockedBuckets.json |
Набори, които се нуждаят от проучване |
|
DeviceHistory.json |
Проследяване на устройства по име на хост |
|
Orchestrator_YYYYMMDD.log |
Регистрационни файлове за ежедневната дейност |
обратно към "Стъпки за разполагане на E2E (ръководство за бърза справка)"
Отстраняване на неизправности
В този раздел
Orchestrator Not Progressing
-
Проверка на планирана задача
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
-
Проучете достъпността на устройството.
-
Проверете за проблеми с фърмуера.
-
Деблокиране след проучване.
GPO не се прилага
-
Проверете дали съществува GPO.
Get-GPO -Name "SecureBoot-Rollout-Wave*"
-
Проверете филтрирането на защитата.
Get-GPPermission -Name "GPO-Name" -All
-
Проверете дали компютърът е в група за защита.
-
Приложете GPO върху целта.
gpupdate /force