Eksempel på E2E Automation Guide til sikker bootstart
Gælder for
Oprindelig publiceringsdato: 16. marts 2026
KB-id: 5084567
I denne artikel
Oversigt
I denne vejledning beskrives det automatiserede installationssystem til Windows Secure Boot DB-certifikatopdateringer ved hjælp af Gruppepolitik og progressive implementeringsbølger.
Secure Boot Certificate Rollout Automation er et PowerShell-baseret system, der installerer Windows Secure Boot DB-certifikatopdateringer på domænetilsluttede computere på en kontrolleret, gradueret måde.
Vigtige funktioner
|
Funktion |
Beskrivelse |
|
Opgraderet udrulning |
1 > 2 > 4 > 8... enheder pr. bucket |
|
Automatisk blokering |
Buckets med enheder, der ikke kan nås, udelades |
|
Automatisk installation af gruppepolitikobjekt |
Enkelt Orchestrator-script håndterer alt |
|
Planlagt opgaveudførelse |
Der kræves ingen interaktive prompter |
|
Overvågning i realtid |
Statusfremviser med statuslinje |
Reference til indstillinger for certifikat Opdateringer
I denne sektion
Gruppepolitik for AvailableUpdatesPolicy
|
Placering af registreringsdatabasen |
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecureBoot |
|
Navn |
AvailableUpdatesPolicy |
|
Værdi |
0x5944 (DWORD) |
Dette er den GPO/ADMX-styrede nøgle, der:
-
Fortsætter på tværs af genstarter
-
Angives af Gruppepolitik/MDM
-
Medfører ikke gentagne løkker (ryddet via ClearRolloutFlags)
-
Er den korrekte nøgle til politikbaseret installation
tilbage til "Reference til Opdateringer af certifikatindstillinger"
WinCSFlags – Flag til Windows Configuration System
Domæneadministratorer kan alternativt bruge Windows Configuration System (WinCS), der er udgivet sammen med Opdateringer til Windows-operativsystemet, til at installere opdateringer til sikker bootstart på tværs af domænetilsluttede Windows-klienter og -servere. Den består af et kommandolinjegrænsefladeværktøj (CLI) til at forespørge og anvende konfigurationer til sikker bootstart lokalt på en computer.
|
Funktionsnavn |
WinCS-tast |
Beskrivelse |
|
Feature_AllKeysAndBootMgrByWinCS |
F33E0C8E002 |
Aktivering af denne nøgle gør det muligt at installere følgende nye certifikater til sikker bootstart fra Microsoft på din enhed.
|
Reference: WinCS-API'er (Windows Configuration System) til sikker bootstart
tilbage til "Reference til Opdateringer af certifikatindstillinger"
Arkitektur
Fase 1: Registrering og statusovervågning på virksomhedsniveau
I denne sektion
Scripts, der er nødvendige for fase 1
Eksempel på scripts til indsamling af data til sikker bootstart
|
Eksempel på scriptnavn |
Formål |
Kører på |
|
Indsamler enhedsstatusdata |
Hvert slutpunkt (via GPO) |
|
|
Genererer rapporter og dashboards |
Administration arbejdsstation |
|
|
Automatiserer oprettelse af gruppepolitikobjekt til dataindsamling |
Domænecontroller |
tilbage til "Fase 1: Registrering og statusovervågning på virksomhedsniveau"
Lokal test
Før du installerer via GPO, skal du teste samlingsscriptet på en enkelt computer for at bekræfte funktionaliteten.
-
Kør samlingsscript lokalt Åbn en PowerShell-prompt med administratorrettigheder, og udfør:
& .\Detect-SecureBootCertUpdateStatus.ps1 -OutputPath "C:\Temp\SecureBootTest"
-
Bekræft JSON-output
# View the collected data Get-Content "C:\Temp\SecureBootTest\*_latest.json" | ConvertFrom-Json | Format-List
Nøglefelter, der skal bekræftes • SecureBootEnabled – Skal være sand eller falsk • OverallStatus – Complete, ReadyForUpdate, NeedsData eller fejl • BucketHash – Enhedsbøtte til matchning af tillidsdata • SecureBootTaskEnabled – Viser status for sikker bootstartopdateringsopgave.
-
Test sammenlægningsscript
# Generate reports from collected data & .\Aggregate-SecureBootCertStatus.ps1" ' -InputPath "C:\Temp\SecureBootTest" ' -OutputPath "C:\Temp\SecureBootReports" # Åbn HTML-dashboardet
Start-Process "C:\Temp\SecureBootReports\SecureBoot_Dashboard_*.html"
tilbage til "Fase 1: Registrering og statusovervågning på virksomhedsniveau"
Installation af gruppepolitikobjekt
Brug det automatiseringsscript, der leveres fra en domænecontroller:
# Kør på domænecontroller som domæne Administration for interaktiv OU-sektion – anbefalet # Erstat "Contoso.com", "Contoso" med navnet på domænet # Erstat FILESERVER med filnavnet på filserveren. Script viser en liste over OUs, der skal installeres gruppepolitikobjekt på .\Deploy-GPO-SecureBootCollection.ps1 ' -DomainName "contoso.com" ' -AutoDetectOU ' -CollectionSharePath "\\FILESERVER\SecureBootLogs$" ' -ScriptSourcePath ".\Detect-SecureBootCertUpdateStatus.ps1" ' -Planlæg "Dagligt" -ScheduleTime "14:00" ' -RandomDelayHours 4
Dette script udfører følgende:
-
Opretter et nyt gruppepolitikobjekt med det angivne navn
-
Kopierer samlingsscript til SYSVOL for at få høj tilgængelighed
-
Konfigurerer computerstartscript
-
Sammenkæder GPO med mål-OU
-
Opretter eventuelt planlagt opgave til periodisk samling
Følgende tabel indeholder en vejledning i, hvor lang tid forsinkelsen vil være baseret på din flådestørrelse.
|
Flådestørrelse |
Forsinkelsesområde |
|
1-10.000 enheder |
4 timer |
|
10.000-50.000 enheder |
8 timer |
|
Mere end 50.000 enheder |
12-24 timer |
tilbage til "Fase 1: Registrering og statusovervågning på virksomhedsniveau"
Oversigt over GPO-indstillinger
|
Indstilling |
Placering |
Værdi |
|
Startscript |
Computerkonfigurationsscripts → |
Detect-SecureBootCertUpdateStatus.ps1 |
|
Scriptparametre |
(samme) |
-OutputPath "\\server\share$" |
|
Eksekveringspolitik |
Computer Config → Administration-skabeloner → PowerShell |
Tillad lokal og fjernsigneret |
|
Planlagt opgave |
Indstillinger → planlagte opgaver i Computerkonfigurer → |
Daglig/ugentlig samling |
tilbage til "Fase 1: Registrering og statusovervågning på virksomhedsniveau"
Kontrol
-
Force GPO Update on Test Machine
## On a test workstation gpupdate /force # Genstart klientcomputerne for at starte scriptet, ellers udløses det efter næste tidsplan. Restart-Computer -Force
-
Bekræft dataindsamling
# Kontrollér, om dataene blev indsamlet (på filserveren eller fra en hvilken som helst computer) Get-ChildItem "\\fileserver\SecureBootData$" | Sort-Object LastWriteTime -Faldende | Select-Object -Første 10 # Bekræft JSON-indhold Get-Content "\\fileserver\SecureBootData$\TESTPC_latest.json" | ConvertFrom-Json
-
Kontrollér GPO-program
# Kontrollér, at gruppepolitikobjekt anvendes på computeren gpresult /r /scope:computer | Select-String "SecureBoot" S Scriptet gemmer også en lokal kopi til redundans: Get-ChildItem "C:\ProgramData\SecureBootCollection\"
tilbage til "Fase 1: Registrering og statusovervågning på virksomhedsniveau"
Fase 2: Scripts til orkestrering af sikker bootstartcertifikatopdatering
Vigtigt!: Sørg for, at Fase1 er fuldført, herunder indsamling af data på hvert slutpunkt til fjernservershares.
I denne sektion
Scripts, der er nødvendige for fase 2
Eksempel på scripts til indsamling af data til sikker bootstart
|
Eksempel på scriptnavn |
Formål |
Kører på |
|
Indsamler enhedsstatusdata |
Hvert slutpunkt (via GPO) |
|
|
Genererer rapporter og dashboards |
Administration arbejdsstation |
|
|
Automatiserer oprettelse af gruppepolitikobjekt til dataindsamling |
Domænecontroller |
|
|
Fuldautomatisk, kontinuerlig orkestrering med automatisk installation af gruppepolitikobjekt til certifikatinstallation |
Administration arbejdsstation |
|
|
Installerer Orchestrator-script som planlagt opgave til automatisk udrulning |
Domænecontroller |
|
|
Få vist status for udrulning af sikker bootstartcertifikat fra en arbejdsstation |
Administration Workstation |
|
|
Aktiverer opdateringsopgave for sikker bootstart |
På slutpunkter, hvor opgaven er deaktiveret (Kør kun én gang for at aktivere opgaven, hvis den er deaktiveret) |
tilbage til "Phase 2: Secure Boot Certificate Update Orchestration Scripts"
Start-SecureBootRolloutOrchestrator.ps1
-
Formål: Fuldautomatisk, kontinuerlig orkestrering med automatisk installation af gruppepolitikobjekt.
-
Funktion
-
Opkald Aggregate-SecureBootData.ps1 for enhedsstatus
-
Genererer udrulningsbølger ved hjælp af progressiv fordobling
-
Opretter gruppepolitikobjekt til certifikatinstallation ved hjælp af en af følgende metoder
-
Gruppepolitik for sikker bootstart AvailableUpdatesPolicy = 0x5944 (standard)
-
WinCS-metode (Parameter –UseWinCS)
-
-
Opretter AD-sikkerhedsgrupper til målretning
-
Føjer computerkonti til sikkerhedsgrupper
-
Konfigurerer filtrering af gruppepolitikobjektsikkerhed
-
Sammenkæder GPO med mål-OU
-
Skærme til blokerede buckets (enheder, der ikke kan nås)
-
Fjern automatisk blokeringer, når enheder genoprettes
-
-
Brug
# 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
-
Administration kommandoer
# List blocked buckets .\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -ListBlockedBuckets
# Unblock specific bucket .\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -UnblockBucket "Dell|Latitude5520|BIOS1.2"
# Unblock all .\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -UnblockAll
-
Parametre
Parameter
Standard
Beskrivelse
AggregationInputPath
Påkrævet
UNC-sti til slutpunkts-JSON-filer
ReportBasePath
Påkrævet
Lokal sti til rapporter og tilstand
TargetOU
Domænerod
OU til at sammenkæde gruppepolitikobjekter
WavePrefix
SecureBoot-Rollout
GPO/gruppenavngivningspræfiks
MaxWaitHours
72
Timer før kontrol af enhedens rækkevidde
PollIntervalMinutes
1440
Minutter mellem statuskontroller
DryRun
False
Vis, hvad der ville ske uden ændringer
tilbage til "Phase 2: Secure Boot Certificate Update Orchestration Scripts"
Deploy-OrchestratorTask.ps1
-
Formål: Installerer orchestratoren som en planlagt Windows-opgave.
-
Fordele
-
Ingen PowerShell-sikkerhedsprompter (ExecutionPolicy Bypass)
-
Kører løbende i baggrunden
-
Kræver ingen brugerinteraktion
-
Overlever genstarter
-
-
Brug
-
Installer med domænetjenestekonto (anbefales)
-
Brug AvailableUpdates Gruppepolitik (standardmetode)
.\Deploy-OrchestratorTask.ps1 ' -AggregationInputPath "\\server\SecureBootData$" ' -ReportBasePath "C:\SecureBootReports" ' -ServiceAccount "DOMAIN\svc_secureboot"
-
Brug WinCS-metoden
.\Deploy-OrchestratorTask.ps1 ' -AggregationInputPath "\\server\SecureBootData$" ' -ReportBasePath "C:\SecureBootReports" ' -ServiceAccount "DOMAIN\svc_secureboot" -UseWinCS
-
-
Installer med SYSTEM-konto
-
Brug AvailableUpdates Gruppepolitik (standardmetode)
.\Deploy-OrchestratorTask.ps1 ' -AggregationInputPath "\\server\SecureBootData$" ' -ReportBasePath "C:\SecureBootReports"
-
Brug WinCS-method.\Deploy-OrchestratorTask.ps1
-AggregationInputPath "\\server\SecureBootData$" ' -ReportBasePath "C:\SecureBootReports" -UseWinCS
-
Krav til tjenestekonto
-
Domæne Administration (for New-GPO, New-ADGroup, Add-ADGroupMember)
-
Læs adgang til JSON-filshare
-
Skrive adgang til ReportBasePath
-
-
-
tilbage til "Phase 2: Secure Boot Certificate Update Orchestration Scripts"
Get-SecureBootRolloutStatus.ps1
-
Formål: Få vist status for udrulning fra en arbejdsstation.
-
Hvad det viser
-
Planlagt opgavetilstand (kører/klar/stoppet)
-
Aktuelt bølgenummer
-
Enheder målrettet vs. opdateret
-
Visuel statuslinje
-
Oversigt over blokerede buckets
-
Link til seneste HTML-dashboard
-
-
Brug
# 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
-
Eksempel på output
============================================================== STATUS FOR SIKKER STARTUDRULNING 2026-02-17 19:30:00 ======================================================
Scheduled Task: Running
ROLLOUT PROGRESS ---------------------------------------- Status: InProgress Aktuel bølge: 5 Målrettet i alt: 1250 Opdateret i alt: 847
Progress: [█████████████████████░░░░░░░░░░░░░░░░░░░] 67.8%
BLOCKED BUCKETS: 2 buckets need attention Kør med -ShowBlocked for at få flere oplysninger
LATEST DASHBOARD C:\SecureBootReports\Aggregation_20260217_193000\SecureBoot_Dashboard.html __________________________________________________________________________________________
tilbage til "Phase 2: Secure Boot Certificate Update Orchestration Scripts"
E2E-installationstrin (oversigtsvejledning)
I denne sektion
Fase 1: Registreringsinfrastruktur
-
Trin 1: Opret samlingsshare
# 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
-
Trin 2: Installér registrerings-gruppepolitikobjekt
.\Deploy-GPO-SecureBootCollection.ps1 ` -DomainName "contoso.com" ' -OUPath "OU=Workstations,DC=contoso,DC=com" ' -CollectionSharePath "\\server\SecureBootData$"
-
Trin 3: Vent på, at slutpunkter rapporteres (24-48 timer)
# Kontrollér status for indsamling (Get-ChildItem "\\server\SecureBootData$" -Filter "*.json"). Tælle
Fase 2: Orchestrated Rollout
-
Trin 4: Kontrol af forudsætninger
-
Registrering af gruppepolitikobjekt installeret (trin 2)
-
Mindst 50 slutpunkter, der rapporterer JSON
-
Tjenestekonto med domænerettigheder Administration
-
Administrationsserver med PowerShell 5.1+
-
-
Trin 5: Installér Orchestrator som planlagt opgave
.\Deploy-OrchestratorTask.ps1 ` -AggregationInputPath "\\server\SecureBootData$" ' -ReportBasePath "C:\SecureBootReports" ' -ServiceAccount "DOMAIN\svc_secureboot"
-
Trin 6: Overvåge status
.\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports"
-
Trin 7: Vis dashboard
.\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports" -OpenDashboard
-
Trin 8: Administrer blokerede buckets
# List blocked .\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -ListBlockedBuckets
# Investigate and unblock .\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -UnblockBucket "Manufacturer|Model|BIOS"
-
Trin 9: Bekræft fuldførelse
.\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports" # Status skal vise "Fuldført"
Stat Files
Orchestrator vedligeholder tilstanden i ReportBasePath\RolloutState\:
|
Filer |
Beskrivelse |
|
RolloutState.json |
Bølgehistorik, målrettede enheder, status |
|
BlockedBuckets.json |
Buckets, der skal undersøges |
|
DeviceHistory.json |
Enhedssporing efter værtsnavn |
|
Orchestrator_YYYYMMDD.log |
Logfiler over daglig aktivitet |
Fejlfinding
I denne sektion
Orchestrator skrider ikke frem
-
Kontrollér planlagt opgave
Get-ScheduledTask -TaskName "SecureBoot-Rollout-Orchestrator"
-
Kontrollér logfiler
Get-Content "C:\SecureBootReports\RolloutState\Orchestrator_*.log" -Tail 50
-
Kontrollér JSON-datas friskhed
(Get-ChildItem "\\server\SecureBootData$" -Filter "*.json" | Where-Object { $_.LastWriteTime -gt (Get-Date).AddDays(-1) }).Count
Blokerede buckets
-
Liste blokeret.
.\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -ListBlockedBuckets
-
Undersøg enhedens rækkevidde.
-
Kontrollér, om der er firmwareproblemer.
-
Fjern blokeringen efter undersøgelsen.
GPO anvender ikke
-
Kontrollér, at gruppepolitikobjekt findes.
Get-GPO -Name "SecureBoot-Rollout-Wave*"
-
Kontrollér sikkerhedsfiltrering.
Get-GPPermission -Name "GPO-Name" -All
-
Kontrollér, at computeren er i sikkerhedsgruppen.
-
Anvend gruppepolitikobjektet på destinationen.
gpupdate /force