Ukážka príručky automatizácie zabezpečeného spustenia systému E2E
Vzťahuje sa na
Pôvodný dátum publikovania: 16. marca 2026
KB ID: 5084567
V tomto článku
Prehľad
Táto príručka popisuje systém automatizovaného nasadenia pre aktualizácie certifikátov Windows Secure Boot DB pomocou vĺn skupinová politika a postupného zavádzania.
Automatizácia zavádzania certifikátov zabezpečeného spustenia je systém založený na prostredí PowerShell, ktorý nasadí aktualizácie certifikátov Windows Secure Boot DB do počítačov pripojených k doméne kontrolovaným a odstupňovaným spôsobom.
Kľúčové funkcie
|
Funkcia |
Popis |
|
Odstupňované zavádzanie |
1 > 2 > 4 > 8... zariadenia na sektor |
|
Automatické blokovanie |
Sektory s nedostupnými zariadeniami sú vylúčené |
|
Automatizované nasadenie objektu GPO |
Jeden orchestrator skript zvláda všetko |
|
Naplánovaná úloha – vykonanie |
Nevyžadujú sa žiadne interaktívne výzvy |
|
Monitorovanie v reálnom čase |
Zobrazovač stavu s indikátorom priebehu |
Referenčné informácie k nastaveniam Aktualizácie certifikátu
V tejto časti
Skupinová politika AvailableUpdatesPolicy
|
Umiestnenie databázy Registry |
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecureBoot |
|
Názov |
AvailableUpdatesPolicy |
|
Hodnota |
0x5944 (DWORD) |
Toto je kľúč riadený objektom GPO/ADMX, ktorý:
-
Pretrváva pri reštartoch
-
Nastavuje skupinová politika/MDM
-
Nespôsobuje opakovanie slučiek (vymazané cez ClearRolloutFlags)
-
Je správny kľúč pre nasadenie riadené politikou
späť na "Certificate Aktualizácie Settings Reference" (Odkaz na nastavenia certifikátu)
WinCSFlags - Príznaky systému Konfigurácia systému Windows
Správcovia domén môžu alternatívne použiť Windows Configuration System (WinCS) vydaný s aktualizáciami operačného systému Windows na nasadenie aktualizácií zabezpečeného spustenia v rámci klientov a serverov Windowsu pripojených k doméne. Pozostáva z pomôcky rozhrania príkazového riadka (CLI) na dotazovanie a lokálne použitie konfigurácií zabezpečeného spustenia v počítači.
|
Názov funkcie |
Kláves WinCS |
Popis |
|
Feature_AllKeysAndBootMgrByWinCS |
F33E0C8E002 |
Povolenie tohto kľúča umožňuje inštaláciu nasledujúcich nových certifikátov zabezpečeného spustenia od spoločnosti Microsoft do zariadenia.
|
Odkaz: Rozhrania API systému Windows Configuration System (WinCS) na bezpečné spustenie
späť na "Certificate Aktualizácie Settings Reference" (Odkaz na nastavenia certifikátu)
Architektúra
Fáza 1: Zisťovanie a monitorovanie stavu na úrovni podniku
V tejto časti
Skripty potrebné pre fázu 1
Vzorové skripty zhromažďovania údajov inventára zabezpečeného spustenia
|
Názov vzorového skriptu |
Účel |
Spustí sa |
|
Zhromažďuje údaje o stave zariadenia |
Každý koncový bod (prostredníctvom objektu GPO) |
|
|
Generuje zostavy a tabule |
Spravovanie pracovná stanica |
|
|
Automatizuje vytváranie objektu GPO na zhromažďovanie údajov |
Radič domény |
späť na fázu 1: Zisťovanie a monitorovanie stavu na úrovni podniku
Lokálne testovanie
Pred nasadením prostredníctvom objektu GPO otestujte skript kolekcie v jednom počítači a overte funkčnosť.
-
Lokálne spustenie skriptu kolekcie Otvorte výzvu prostredia PowerShell bez oprávnení a spustite:
& .\Detect-SecureBootCertUpdateStatus.ps1 -OutputPath "C:\Temp\SecureBootTest"
-
Overiť výstup JSON
# View the collected data Get-Content "C:\Temp\SecureBootTest\*_latest.json" | ConvertFrom-Json | Format-List
Kľúčové polia na overenie • SecureBootEnabled – má byť True alebo False • OverallStatus – Complete, ReadyForUpdate, NeedsData alebo Error • BucketHash – kontajner zariadenia na určenie zhody údajov spoľahlivosti • SecureBootTaskEnabled – zobrazuje stav úlohy aktualizácie zabezpečeného spustenia.
-
Testovať skript agregácie
# Generate reports from collected data & .\Aggregate-SecureBootCertStatus.ps1" -InputPath "C:\Temp\SecureBootTest" ' -OutputPath "C:\Temp\SecureBootReports" # Otvorte tabuľu HTML
Start-Process "C:\Temp\SecureBootReports\SecureBoot_Dashboard_*.html"
späť na fázu 1: Zisťovanie a monitorovanie stavu na úrovni podniku
Nasadenie objektu GPO
Použite skript automatizácie poskytnutý z radiča domény:
# Spustiť na radiči domény ako domain Spravovanie pre interaktívne OU sekcie – odporúča sa # Nahradiť "Contoso.com", "Contoso" názvom domény # Nahradiť FILESERVER názvom súborového servera. Skript zobrazuje zoznam OU na nasadenie objektu GPO na .\Deploy-GPO-SecureBootCollection.ps1 ' -DomainName "contoso.com" ' -AutoDetectOU ' -CollectionSharePath "\\FILESERVER\SecureBootLogs$" ' -ScriptSourcePath ".\Detect-SecureBootCertUpdateStatus.ps1" ' -Plán "Denne" ' -ScheduleTime "14:00" ' -RandomDelayHours 4
Tento skript vykoná nasledujúce akcie:
-
Vytvorí nový objekt GPO so zadaným názvom
-
Skopíruje skript kolekcie do SYSVOL pre vysokú dostupnosť
-
Konfiguruje skript spustenia počítača
-
Prepojí objekt GPO s cieľovou OU
-
Voliteľne sa vytvorí naplánovaná úloha na pravidelnú kolekciu
Nasledujúca tabuľka obsahuje návod na to, ako dlho bude oneskorenie založené na veľkosti vašej flotily.
|
Veľkosť flotily |
Rozsah oneskorení |
|
Zariadenia s rozlíšením 1 až 10 K |
4 hodín |
|
Zariadenia s rozlíšením 10K až 50 K |
8 hodín |
|
Zariadenia s viac ako 50 K |
12 – 24 hodín |
späť na fázu 1: Zisťovanie a monitorovanie stavu na úrovni podniku
Súhrn nastavení objektu GPO
|
Nastavenie |
Poloha |
Hodnota |
|
Skript pri spustení |
Konfigurácia počítača → skripty |
Detect-SecureBootCertUpdateStatus.ps1 |
|
Parametre skriptu |
(rovnaké) |
-OutputPath "\\server\share$" |
|
Politika spustenia |
Šablóny konfigurácie počítača → Spravovanie → prostredí PowerShell |
Povoliť lokálne a vzdialené podpisy |
|
Naplánovaná úloha |
Predvoľby konfigurácie počítača → → naplánovaných úlohách |
Denná/týždenná kolekcia |
späť na fázu 1: Zisťovanie a monitorovanie stavu na úrovni podniku
Overenie
-
Vynútiť aktualizáciu OBJEKTU GPO v teste Machine
## On a test workstation gpupdate /force # Reštartujte klientske počítače na spustenie skriptu alebo sa spustí podľa nasledujúceho plánu. Restart-Computer – vynútiť
-
Overenie zhromažďovania údajov
# Skontrolujte, či boli zhromaždené údaje (na súborovom serveri alebo z ľubovoľného počítača) Get-ChildItem "\\fileserver\SecureBootData$" | Sort-Object LastWriteTime -Descending | Select-Object – prvých 10 # Overenie obsahu JSON Get-Content "\\fileserver\SecureBootData$\TESTPC_latest.json" | ConvertFrom-Json
-
Skontrolovať aplikáciu objektu GPO
# Overte, či je objekt GPO použitý v počítači gpresult /r /scope:computer | Select-String SecureBoot S Skript tiež uloží lokálnu kópiu na redundanciu: Get-ChildItem "C:\ProgramData\SecureBootCollection\"
späť na fázu 1: Zisťovanie a monitorovanie stavu na úrovni podniku
Fáza 2: Skripty aktualizácie certifikátu zabezpečeného spustenia
Dôležité: Uistite sa, že fáza 1 je dokončená, vrátane zhromažďovania údajov na každom koncovom bode vzdialeného zdieľania servera.
V tejto časti
Skripty potrebné pre fázu 2
Vzorové skripty zhromažďovania údajov inventára zabezpečeného spustenia
|
Názov vzorového skriptu |
Účel |
Používa systém |
|
Zhromažďuje údaje o stave zariadenia |
Každý koncový bod (prostredníctvom objektu GPO) |
|
|
Generuje zostavy a tabule |
Spravovanie pracovná stanica |
|
|
Automatizuje vytváranie objektu GPO na zhromažďovanie údajov |
Radič domény |
|
|
Plne automatizovaná a nepretržitá orchestrácia s automatizovaným nasadením objektu GPO na inštaláciu certifikátu |
Spravovanie pracovná stanica |
|
|
Nasadzuje skript Orchestrator ako naplánovanú úlohu pre automatizované zavádzanie |
Radič domény |
|
|
Zobraziť stav zavedenia certifikátu zabezpečeného spustenia z ľubovoľnej pracovnej stanice |
Spravovanie pracovná stanica |
|
|
Povolí úlohu aktualizácie zabezpečeného spustenia |
V koncových bodoch, kde je úloha vypnutá (ak je úloha vypnutá, spustite ju iba raz) |
späť na "Phase 2: Secure Boot Certificate Update Orchestration Scripts"
Start-SecureBootRolloutOrchestrator.ps1
-
Účel: Plne automatizovaná a nepretržitá orchestrácia s automatizovaným nasadením objektu GPO.
-
Funkcia
-
Hovory Aggregate-SecureBootData.ps1 stavu zariadenia
-
Generuje vlny zavádzania pomocou progresívneho zdvojnásobenia
-
Vytvorí objekt GPO na nasadenie certifikátu pomocou jednej z nasledujúcich metód
-
Skupinová politika zabezpečeného spustenia AvailableUpdatesPolicy = 0x5944 (predvolené)
-
Metóda WinCS (Parameter – UseWinCS)
-
-
Vytvorí skupiny zabezpečenia AD na zacielenie
-
Pridá kontá počítača do skupín zabezpečenia
-
Konfiguruje filtrovanie zabezpečenia objektu GPO
-
Prepojí objekt GPO s cieľovou OU
-
Monitory pre blokované sektory (nedostupné zariadenia)
-
Automatické odblokovanie pri obnovení zariadení
-
-
Spotreba
# 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 1440 -UseWinCS
-
Spravovanie príkazy
# List blocked buckets .\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -ListBlockedBuckets
# Unblock specific bucket .\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -UnblockBucket "Dell|Zemepisná šírka5520|BIOS1.2"
# Unblock all .\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -UnblockAll
-
Parametre
Parameter
Predvolená
Popis
AgregationInputPath
Povinné
Cesta UNC k súborom JSON koncového bodu
ReportBasePath
Povinné
Lokálna cesta pre zostavy a stav
Cieľová ÚS
Koreňový priečinok domény
OU na prepojenie GPO
Predpona vlny
SecureBoot-Rollout
Predpona pomenovania objektu GPO alebo skupiny
MaxWaitHours (MaxWaitHours)
72
Hodiny pred kontrolou dostupnosti zariadenia
PollIntervalMinutes (AnketaIntervalMinutes)
1440
Minúty medzi kontrolami stavu
DryRun
False
Zobrazenie toho, čo by sa stalo bez zmien
späť na "Phase 2: Secure Boot Certificate Update Orchestration Scripts"
Deploy-OrchestratorTask.ps1
-
Účel: Nasadzuje orchestrator ako plánovanú úlohu systému Windows.
-
Výhody
-
Žiadne výzvy zabezpečenia prostredia PowerShell (obídenie ExecutionPolicy)
-
Beží na pozadí nepretržite
-
Nevyžaduje sa žiadna interakcia používateľa
-
Prežije reštarty
-
-
Spotreba
-
Nasadenie pomocou konta doménovej služby (odporúča sa)
-
Použiť skupinová politika AvailableUpdates (predvolená metóda)
.\Deploy-OrchestratorTask.ps1 ' -AggregationInputPath "\\server\SecureBootData$" ' -ReportBasePath "C:\SecureBootReports" ' -ServiceAccount "DOMAIN\svc_secureboot"
-
Použitie metódy WinCS
.\Deploy-OrchestratorTask.ps1 ' -AggregationInputPath "\\server\SecureBootData$" ' -ReportBasePath "C:\SecureBootReports" ' -ServiceAccount "DOMAIN\svc_secureboot" -UseWinCS
-
-
Nasadenie pomocou konta SYSTEM
-
Použiť skupinová politika AvailableUpdates (predvolená metóda)
.\Deploy-OrchestratorTask.ps1 ' -AggregationInputPath "\\server\SecureBootData$" ' -ReportBasePath "C:\SecureBootReports"
-
Používanie method.\Deploy-OrchestratorTask.ps1 WinCS
-AggregationInputPath "\\server\SecureBootData$" ' -ReportBasePath "C:\SecureBootReports" -UseWinCS
-
Požiadavky konta služby
-
Domain Spravovanie (for New-GPO, New-ADGroup, Add-ADGroupMember)
-
Prístup na čítanie k zdieľanému súboru JSON
-
Prístup na zápis do aplikácie ReportBasePath
-
-
-
späť na "Phase 2: Secure Boot Certificate Update Orchestration Scripts"
Get-SecureBootRolloutStatus.ps1
-
Účel: Zobraziť priebeh zavádzania z ľubovoľnej pracovnej stanice.
-
Čo to ukazuje
-
Stav naplánovanej úlohy (spustená, pripravená alebo zastavená)
-
Číslo aktuálnej vlny
-
Cieľové zariadenia a aktualizované
-
Indikátor priebehu vizuálu
-
Súhrn blokovaných sektorov
-
Prepojenie na najnovšiu tabuľu HTML
-
-
Spotreba
# 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
-
Ukážkový výstup
============================================================== STAV ZAVÁDZANIA ZABEZPEČENÉHO SPUSTENIA 2026-02-17 19:30:00 ======================================================
Scheduled Task: Running
ROLLOUT PROGRESS ---------------------------------------- Stav: InProgress Aktuálna vlna: 5 Celkovo pre vybraných používateľov: 1250 Celkom aktualizované: 847
Progress: [█████████████████████░░░░░░░░░░░░░░░░░░░] 67.8%
BLOCKED BUCKETS: 2 buckets need attention Podrobnosti o spustení s funkciou -ShowBlocked
LATEST DASHBOARD C:\SecureBootReports\Aggregation_20260217_193000\SecureBoot_Dashboard.html __________________________________________________________________________________________
späť na "Phase 2: Secure Boot Certificate Update Orchestration Scripts"
Kroky nasadenia E2E (stručná referenčná príručka)
V tejto časti
Fáza 1: Infraštruktúra zisťovania
-
Krok 1: Vytvorenie zdieľania kolekcie
# On file server $sharePath = "D:\SecureBootData" New-Item -ItemType Directory -Path $sharePath -Force New-SmbShare -Name "SecureBootData$" -Path $sharePath -FullAccess "Domain Admins" -ChangeAccess "Domain Computers"
# 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
-
Krok 2: Nasadenie objektu GPO zisťovania
.\Deploy-GPO-SecureBootCollection.ps1 ` -DomainName "contoso.com" ' -OUPath "OU=Pracovné stanice,DC=contoso,DC=com" ' -CollectionSharePath "\\server\SecureBootData$"
-
Krok 3: Čakanie na vytvorenie zostavy koncových bodov (24 – 48 hodín)
# Skontrolovať priebeh zhromažďovania (Get-ChildItem "\\server\SecureBootData$" -Filter "*.json"). Počítať
Fáza 2: Riadené zavádzanie
-
Krok 4: Kontrola predpokladov
-
Nasadenie objektu GPO detekcie (krok 2)
-
Najmenej 50+ koncových bodov na vytváranie zostáv JSON
-
Konto služby s právami Spravovanie domén
-
Server správy s prostredím PowerShell 5.1+
-
-
Krok 5: Nasadenie orchestratoru ako naplánovanej úlohy
.\Deploy-OrchestratorTask.ps1 ` -AggregationInputPath "\\server\SecureBootData$" ' -ReportBasePath "C:\SecureBootReports" ' -ServiceAccount "DOMAIN\svc_secureboot"
-
Krok 6: Monitorovanie priebehu
.\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports"
-
Krok 7: Zobrazenie tabule
.\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports" -OpenDashboard
-
Krok 8: Spravovanie blokovaných sektorov
# List blocked .\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -ListBlockedBuckets
# Investigate and unblock .\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -UnblockBucket "Manufacturer|Model |BIOS"
-
Krok 9: Overenie dokončenia
.\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports" # Stav by mal zobrazovať "Dokončené"
Štátna Files
Orchestrator udržiava stav v ReportBasePath\RolloutState\:
|
Súbor |
Popis |
|
RolloutState.json |
História vĺn, cielené zariadenia, stav |
|
BlockedBuckets.json |
Sektory vyžadujúce skúmanie |
|
DeviceHistory.json |
Sledovanie zariadení podľa názvu hostiteľa |
|
Orchestrator_YYYYMMDD.log |
Denníky denných aktivít |
Riešenie problémov
V tejto časti
Orchestrator nepostupuje
-
Kontrola naplánovanej úlohy
Get-ScheduledTask -TaskName "SecureBoot-Rollout-Orchestrator"
-
Skontrolovať denníky
Get-Content "C:\SecureBootReports\RolloutState\Orchestrator_*.log" -Tail 50
-
Overenie aktuálnosti údajov JSON
(Get-ChildItem "\\server\SecureBootData$" -Filter "*.json" | Where-Object { $_.LastWriteTime -gt (Get-Date).AddDays(-1) }).Count
Blokované sektory
-
Zoznam je zablokovaný.
.\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -ListBlockedBuckets
-
Preskúmajte dostupnosť zariadenia.
-
Skontrolujte problémy s firmvérom.
-
Odblokovať po vyšetrovaní.
Objekt GPO sa nepoužíva
-
Overte, či objekt GPO existuje.
Get-GPO -Name "SecureBoot-Rollout-Wave*"
-
Skontrolujte filtrovanie zabezpečenia.
Get-GPPermission -Name "GPO-Name" -All
-
Overte, či je počítač v skupine zabezpečenia.
-
Použitie objektu GPO v cieli.
gpupdate /force