Sample Secure Boot E2E Automation Guide
Taikoma
Pradinė publikavimo data: 2026 m. kovo 16 d.
KB ID: 5084567
Šiame straipsnyje
Apžvalga
Šiame vadove aprašoma automatinio diegimo sistema, skirta "Windows" saugiosios įkrovos DB sertifikatų naujinimams, naudojant Grupės strategija ir progresyviojo diegimo bangas.
Saugiosios įkrovos sertifikato diegimo automatizavimo yra "PowerShell" pagrįsta sistema, kuri diegia "Windows" saugiosios įkrovos DB sertifikato naujinimus prie domeno prijungtuose įrenginiuose kontroliuojamu, baigę darbą.
Pagrindinės funkcijos
|
Funkcija |
Aprašas |
|
Doktorantas |
1 > 2 > 4 > 8... įrenginių skaičius talpykloje |
|
Automatinis blokavimas |
Talpyklos su nepasiekiamais įrenginiais neįtraukiamos |
|
Automatinis GPO diegimas |
Single orchestrator script handles everything |
|
Suplanuotos užduoties vykdymas |
Nereikia jokių interaktyvių raginimų |
|
Stebėjimas realiuoju laiku |
Būsenos peržiūros programa su eigos juosta |
Sertifikato Naujinimai parametrų nuoroda
Šiame skyriuje
AvailableUpdatesPolicy grupės strategija
|
Registro vieta |
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecureBoot |
|
Pavadinimas |
AvailableUpdatesPolicy |
|
Reikšmė |
0x5944 (DWORD) |
Tai YRA GPO/ADMX valdomas raktas, kuris:
-
Išlieka perkrovimuose
-
Nustato Grupės strategija / MDM
-
Nesukelia kartojimo ciklų (išvalytas naudojant ClearRolloutFlags)
-
Ar teisingas strategija pagrįsto diegimo raktas
WinCSFlags – "Windows" konfigūracijos sistemos žymės
Domeno administratoriai taip pat gali naudoti "Windows" konfigūravimo sistemą (WinCS), išleistą su "Windows" OS naujinimais, kad įdiegtų saugiosios įkrovos naujinimus visuose prie domeno prijungtuose "Windows" klientuose ir serveriuose. Jį sudaro komandų eilutės sąsajos (CLI) priemonė , kuri leidžia teikti užklausas ir kompiuteryje taikyti saugiosios įkrovos konfigūracijas.
|
Funkcijos pavadinimas |
WinCS raktas |
Aprašas |
|
Feature_AllKeysAndBootMgrByWinCS |
F33E0C8E002 |
Įgalinus šį raktą, jūsų įrenginyje galima įdiegti šiuos "Microsoft" pateiktus saugiosios įkrovos naujus sertifikatus.
|
Nuoroda: "Windows" konfigūracijos sistemos (WinCS) API saugiosios įkrovos
Architektūra
1 etapas: Aptikimas ir būsenos stebėjimas įmonės lygiu
Šiame skyriuje
Scenarijai, reikalingi 1 etapui
Saugiosios įkrovos atsargų duomenų rinkimo scenarijų pavyzdžiai
|
Scenarijaus pavadinimo pavyzdys |
Tikslas |
Veikia |
|
Renka įrenginio būsenos duomenis |
Kiekvienas galinis punktas (naudojant GPO) |
|
|
Generuoja ataskaitas ir ataskaitų sritis |
Administratorius darbo stotis |
|
|
Automatizuoja GPO kūrimą duomenų rinkimui |
Domeno valdiklis |
grįžti į "1 etapas: aptikimo ir būsenos stebėjimas įmonės lygiu"
Vietinis tikrinimas
Prieš diegdami per GPO, patikrinkite rinkinio scenarijų viename kompiuteryje, kad patikrintumėte funkcijas.
-
Vietoje vykdyti rinkinio scenarijų Atidarykite didesnių teisių "PowerShell" raginimą ir vykdykite:
& .\Detect-SecureBootCertUpdateStatus.ps1 -OutputPath "C:\Temp\SecureBootTest"
-
Tikrinti JSON išvestį
# View the collected data Get-Content "C:\Temp\SecureBootTest\*_latest.json" | ConvertFrom-Json | Format-List
Tikrinami pagrindiniai laukai • SecureBootEnabled – turi būti teisingas arba klaidingas • OverallStatus – "Complete", "ReadyForUpdate", "NeedsData" arba "Error" • BucketHash – įrenginio talpykla, atitinkanti patikimumo duomenis • SecureBootTaskEnabled – rodo saugiosios įkrovos naujinimo užduoties būseną.
-
Tikrinti agregavimo scenarijų
# Generate reports from collected data & .\Aggregate-SecureBootCertStatus.ps1" ' -InputPath "C:\Temp\SecureBootTest" ' -OutputPath "C:\Temp\SecureBootReports" # Atidaryti HTML ataskaitų sritį
Start-Process "C:\Temp\SecureBootReports\SecureBoot_Dashboard_*.html"
grįžti į "1 etapas: aptikimo ir būsenos stebėjimas įmonės lygiu"
GPO diegimas
Naudokite automatizavimo scenarijų, pateiktą iš domeno valdiklio:
# Vykdyti domeno valdiklyje kaip domeno Administratorius interaktyviam OU skyriui – rekomenduojama # Pakeiskite "Contoso.com", "Contoso" domeno vardu # Pakeiskite FILESERVER failų serverio vardu. Scenarijuje rodomas OU, naudojamų diegiant GPO, sąrašas .\Deploy-GPO-SecureBootCollection.ps1 ' -DomainName "contoso.com" ' -AutoDetectOU -CollectionSharePath "\\FILESERVER\SecureBootLogs$" ' -ScriptSourcePath .\Detect-SecureBootCertUpdateStatus.ps1 ' -Tvarkaraštis "Kasdien" ' -Tvarkaraščio laikas "14:00" ' -RandomDelayHours 4
Šis scenarijus atliks šiuos veiksmus:
-
Sukuria naują GPO su nurodytu pavadinimu
-
Kopijos rinkimo scenarijų SYSVOL didelio prieinamumo
-
Konfigūruoja kompiuterio paleisties scenarijų
-
Nuorodos GPO į paskirties OU
-
Pasirinktinai sukuria periodinio rinkinio suplanuotą užduotį
Toliau pateiktoje lentelėje pateikiamos rekomendacijos, kiek laiko bus atidėta, atsižvelgiant į jūsų laivyno dydį.
|
Parko dydis |
Delsos diapazonas |
|
1–10K įrenginiai |
4 val. |
|
10K-50K įrenginiai |
8 val. |
|
50 K ir daugiau įrenginių |
12–24 valandos |
grįžti į "1 etapas: aptikimo ir būsenos stebėjimas įmonės lygiu"
GPO parametrų suvestinė
|
Parametras |
Vieta |
Reikšmė |
|
Paleisties scenarijus |
Computer Config → Scripts |
Detect-SecureBootCertUpdateStatus.ps1 |
|
Scenarijaus parametrai |
(tas pats) |
-OutputPath "\\server\share$" |
|
Vykdymo strategija |
Computer Config → Administratorius Templates → PowerShell |
Leisti vietinį ir nuotolinį pasirašytą |
|
Suplanuota užduotis |
Computer Config → Preferences → Scheduled Tasks |
Rinkinys kasdien / kas savaitę |
grįžti į "1 etapas: aptikimo ir būsenos stebėjimas įmonės lygiu"
Tikrinimas
-
Force GPO Update on Test Machine
## On a test workstation gpupdate /force # Iš naujo paleiskite kliento kompiuterius, kad būtų paleistas scenarijus, arba jis suaktyvins kitą tvarkaraštį. Restart-Computer –Force
-
Tikrinti duomenų rinkimą
# Patikrinkite, ar duomenys buvo surinkti (failų serveryje ar iš bet kurio kompiuterio) Get-ChildItem "\\fileserver\SecureBootData$" | Sort-Object LastWriteTime -Descending | Select-Object – pirmas 10 # JSON turinio tikrinimas Get-Content "\\fileserver\SecureBootData$\TESTPC_latest.json" | ConvertFrom-Json
-
Tikrinti GPO programą
# Patikrinkite, ar kompiuteriui taikomas GPO gpresult /r /scope:computer | Select-String "SecureBoot" S Scenarijus taip pat įrašo vietinę kopiją dėl perteklinės informacijos: Get-ChildItem "C:\ProgramData\SecureBootCollection\"
grįžti į "1 etapas: aptikimo ir būsenos stebėjimas įmonės lygiu"
2 etapas: Saugiosios įkrovos sertifikato naujinimo valdymo scenarijai
Svarbu: Įsitikinkite, kad 1 etapas baigtas, įskaitant duomenų rinkimą kiekviename pabaigos taške iki nuotolinio serverio bendrinimo vietos.
Šiame skyriuje
Scenarijai, reikalingi 2 etapui
Saugiosios įkrovos atsargų duomenų rinkimo scenarijų pavyzdžiai
|
Scenarijaus pavadinimo pavyzdys |
Tikslas |
Veikia |
|
Renka įrenginio būsenos duomenis |
Kiekvienas galinis punktas (naudojant GPO) |
|
|
Generuoja ataskaitas ir ataskaitų sritis |
Administratorius darbo stotis |
|
|
Automatizuoja GPO kūrimą duomenų rinkimui |
Domeno valdiklis |
|
|
Visiškai automatizuotas, nuolatinis tarpusavio |
Administratorius darbo stotis |
|
|
Diegia Valdymo modulio scenarijų kaip suplanuotą automatinio diegimo užduotį |
Domeno valdiklis |
|
|
Peržiūrėti saugiosios įkrovos sertifikato diegimo būseną iš bet kurios darbo vietos |
Administratorius darbo stotis |
|
|
Įgalina saugiosios įkrovos naujinimo užduotį |
Pabaigos taškuose, kur užduotis išjungta (vykdyti tik vieną kartą, kad įgalintumėte užduotį, jei išjungta) |
Grįžti į "2 etapas: Saugiosios įkrovos sertifikato naujinimo valdymo scenarijai"
Start-SecureBootRolloutOrchestrator.ps1
-
Tikslas: Visiškai automatizuotas, nuolatinis tarpusavio tarpusavio
-
Atliekami veiksmai
-
Įrenginio būsenos skambučiai Aggregate-SecureBootData.ps1
-
Generuoja diegimo bangas, naudojant progresyvų dvigubimą
-
Kuria GPO sertifikato diegimui vienu iš toliau nurodytų būdų
-
Saugiosios įkrovos grupės strategija AvailableUpdatesPolicy = 0x5944 (numatytasis)
-
WinCS metodas (parametras –UseWinCS)
-
-
Sukuria ad saugos grupes, skirtas tikslinei
-
Įtraukia kompiuterio paskyras į saugos grupes
-
Konfigūruoja GPO saugos filtravimą
-
Nuorodos GPO į paskirties OU
-
Blokuojamų talpyklų monitoriai (nepasiekiami įrenginiai)
-
Automatiškai atblokuoja, kai įrenginiai atkuriami
-
-
Naudojimas
# 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
-
Administratorius komandos
# List blocked buckets .\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -ListBlockedBuckets
# Unblock specific bucket .\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -UnblockBucket "Dell|Platuma5520|BIOS1.2"
# Unblock all .\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -UnblockAll
-
Parametrus
Parametras
Numatytasis
Aprašas
AggregationInputPath
Būtina
UNC kelias į galinio punkto JSON failus
Ataskaitos bazės kelias
Būtina
Vietinis kelias ataskaitoms ir būsenai
TargetOU
Domeno šaknis
OU, kad susietumėte GPO
"WavePrefix"
SecureBoot-Rollout
GPO/grupės pavadinimų prefiksas
Maks. valandos
72
Valandos prieš tikrinant įrenginio pasiekiamumą
PollIntervalMinutes
1440
Minučių skaičius tarp būsenos tikrinimų
DryRun
False
Rodyti, kas nutiktų be keitimų
Grįžti į "2 etapas: Saugiosios įkrovos sertifikato naujinimo valdymo scenarijai"
Deploy-OrchestratorTask.ps1
-
Tikslas: Diegia valdymo įrankį kaip "Windows" suplanuotą užduotį.
-
Pranašumai
-
Nėra "PowerShell" saugos raginimų (ExecutionPolicy Bypass)
-
Veikia fone nuolat
-
Nereikia atlikti jokių veiksmų su vartotoju
-
Išgyvena perkrovimus
-
-
Naudojimas
-
Diegimas naudojant domeno tarnybos abonementą (rekomenduojama)
-
Grupės strategija AvailableUpdates naudojimas (numatytasis metodas)
.\Deploy-OrchestratorTask.ps1 ' -AggregationInputPath "\\server\SecureBootData$" ' -ReportBasePath "C:\SecureBootReports" ' -ServiceAccount –DOMENAS\svc_secureboot"
-
Naudoti "WinCS" metodą
.\Deploy-OrchestratorTask.ps1 ' -AggregationInputPath "\\server\SecureBootData$" ' -ReportBasePath "C:\SecureBootReports" ' -ServiceAccount "DOMAIN\svc_secureboot" - UseWinCS
-
-
Diegimas naudojant SISTEMOS abonementą
-
Grupės strategija AvailableUpdates naudojimas (numatytasis metodas)
.\Deploy-OrchestratorTask.ps1 ' -AggregationInputPath "\\server\SecureBootData$" ' -ReportBasePath "C:\SecureBootReports"
-
"WinCS" method.\Deploy-OrchestratorTask.ps1 naudojimas
-AggregationInputPath "\\server\SecureBootData$" ' -ReportBasePath "C:\SecureBootReports" - UseWinCS
-
Paslaugos abonemento reikalavimai
-
Domeno Administratorius (skirta "New-GPO", "New-ADGroup", "Add-ADGroupMember")
-
Skaitymo prieiga prie JSON failų bendrinimo vietos
-
Rašymo prieiga prie ReportBasePath
-
-
-
Grįžti į "2 etapas: Saugiosios įkrovos sertifikato naujinimo valdymo scenarijai"
Get-SecureBootRolloutStatus.ps1
-
Tikslas: Peržiūrėkite diegimo eigą iš bet kurios darbo vietos.
-
Ką jis rodo
-
Suplanuotos užduoties būsena (vykdoma / parengta / sustabdyta)
-
Dabartinis bangų skaičius
-
Tiksliniai ir atnaujinti įrenginiai
-
Vaizdinė eigos juosta
-
Užblokuotų talpyklų suvestinė
-
Saitas į naujausią HTML ataskaitų sritį
-
-
Naudojimas
# 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
-
Išvesties pavyzdys
============================================================== SAUGIOSIOS ĮKROVOS PALEIDIMO BŪSENA 2026-02-17 19:30:00 ======================================================
Scheduled Task: Running
ROLLOUT PROGRESS ---------------------------------------- Būsena: inProgress Dabartinė banga: 5 Iš viso tikslinių: 1250 Iš viso atnaujinta: 847
Progress: [█████████████████████░░░░░░░░░░░░░░░░░░░] 67.8%
BLOCKED BUCKETS: 2 buckets need attention Vykdyti su -ShowBlocked, kad būtų pateikta išsami informacija
LATEST DASHBOARD C:\SecureBootReports\Aggregation_20260217_193000\SecureBoot_Dashboard.html __________________________________________________________________________________________
Grįžti į "2 etapas: Saugiosios įkrovos sertifikato naujinimo valdymo scenarijai"
E2E diegimo veiksmai (sparčiųjų nuorodų vadovas)
Šiame skyriuje
1 etapas: Aptikimo infrastruktūra
-
1 veiksmas: rinkinio bendrinimo kūrimas
# On file server $sharePath = "D:\SecureBootData" New-Item -ItemType katalogas -kelias $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
-
2 veiksmas: įdiekite aptikimo GPO
.\Deploy-GPO-SecureBootCollection.ps1 ` -DomainName "contoso.com" ' -OUPath "OU=Workstations,DC=contoso,DC=com" ' -CollectionSharePath "\\server\SecureBootData$"
-
3 veiksmas: palaukite, kol bus pateikti galiniai punktai (24–48 valandos)
# Tikrinti rinkimo eigą (Get-ChildItem "\\server\SecureBootData$" - Filter "*.json"). Skaičius
2 etapas: Organizuotas diegimas
-
4 veiksmas: būtinųjų sąlygų tikrinimas
-
Įdiegtas aptikimo GPO (2 veiksmas)
-
Mažiausiai 50+ galinių punktų, pranešaų apie JSON
-
Tarnybos abonementas su domeno Administratorius teisėmis
-
Valdymo serveris su "PowerShell 5.1+"
-
-
5 veiksmas: diekite valdymo modulio kaip suplanuotą užduotį
.\Deploy-OrchestratorTask.ps1 ` -AggregationInputPath "\\server\SecureBootData$" ' -ReportBasePath "C:\SecureBootReports" ' -ServiceAccount –DOMENAS\svc_secureboot"
-
6 veiksmas: eigos stebėjimas
.\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports"
-
7 veiksmas: ataskaitų srities peržiūra
.\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports" -OpenDashboard
-
8 veiksmas: užblokuotų talpyklų valdymas
# List blocked .\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -ListBlockedBuckets
# Investigate and unblock .\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -UnblockBucket "Manufacturer|Modelis |BIOS"
-
9 veiksmas: užbaigimo tikrinimas
.\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports" # Būsena turėtų rodyti "Baigta"
Valstijos Files
Valdymo modulis išlaiko būseną ReportBasePath\RolloutState\:
|
Failas |
Aprašas |
|
RolloutState.json |
Bangų istorija, tiksliniai įrenginiai, būsena |
|
BlockedBuckets.json |
Kibirai, kuriems reikia tyrimo |
|
DeviceHistory.json |
Įrenginio sekimas pagal pagrindinio kompiuterio vardą |
|
Orchestrator_YYYYMMDD.log |
Kasdienės veiklos žurnalai |
Trikčių diagnostika
Šiame skyriuje
"Orchestrator" neįeis į priekį
-
Tikrinti suplanuotą užduotį
Get-ScheduledTask -TaskName "SecureBoot-Rollout-Orchestrator"
-
Tikrinti žurnalus
Get-Content "C:\SecureBootReports\RolloutState\Orchestrator_*.log" -Tail 50
-
JSON duomenų naujumo tikrinimas
(Get-ChildItem "\\server\SecureBootData$" -Filter "*.json" | Where-Object { $_.LastWriteTime -gt (Get-Date).AddDays(-1) }).Count
Užblokuotos talpyklos
-
Sąrašas užblokuotas.
.\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -ListBlockedBuckets
-
Ištirkite įrenginio pasiekiamumą.
-
Patikrinkite, ar nėra programinės-aparatinės įrangos problemų.
-
Atblokuoti po tyrimo.
GPO netaiko
-
Patikrinkite, ar GPO yra.
Get-GPO -Name "SecureBoot-Rollout-Wave*"
-
Patikrinkite saugos filtravimą.
Get-GPPermission -Name "GPO-Name" -All
-
Patikrinkite, ar kompiuteris yra saugos grupėje.
-
Taikykite GPO tiksliniams objektams.
gpupdate /force