Eksempel på støtte for sikker oppstart av E2E-automatisering
Gjelder for
Opprinnelig publiseringsdato: 16. mars 2026 kl.
KB-ID: 5084567
I denne artikkelen
Oversikt
Denne veiledningen beskriver det automatiserte distribusjonssystemet for Windows Secure Boot DB-sertifikatoppdateringer ved hjelp av gruppepolicy og progressive utrullingsbølger.
Automatisering av sertifikatutrulling for sikker oppstart er et PowerShell-basert system som distribuerer Windows Secure Boot DB-sertifikatoppdateringer til domenetilknyttede maskiner på en kontrollert og gradert måte.
Viktige funksjoner
|
Funksjon |
Beskrivelse |
|
Gradert utrulling |
1 > 2 > 4 > 8... enheter per samling |
|
Automatisk blokkering |
Samlinger med enheter som ikke kan nås, er utelatt |
|
Automatisert GPO-distribusjon |
Skript for enkel orchestrator håndterer alt |
|
Planlagt kjøring av aktivitet |
Ingen interaktive ledetekster kreves |
|
Overvåking i sanntid |
Statusvisningsprogram med fremdriftsindikator |
Referanse for innstillinger for sertifikat Oppdateringer
I dette avsnittet
Policy for AvailableUpdatesPolicy-gruppe
|
Registerplassering |
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecureBoot |
|
Navn |
AvailableUpdatesPolicy |
|
Verdi |
0x5944 (DWORD) |
Dette er den GPO/ADMX-kontrollerte nøkkelen som:
-
Vedvarer på tvers av omstarter
-
Angis av gruppepolicy / MDM
-
Forårsaker ikke returløkker (tømmes via ClearRolloutFlags)
-
Er den riktige nøkkelen for policydrevet distribusjon
tilbake til «Referanse for innstillinger for sertifikat Oppdateringer»
WinCSFlags – systemflagg for Windows-konfigurasjon
Domeneadministratorer kan alternativt bruke Windows Configuration System (WinCS) utgitt med Windows OS-oppdateringer for å distribuere oppdateringene for sikker oppstart på tvers av domenetilknyttede Windows-klienter og -servere. Den består av et kommandolinjegrensesnitt (CLI)-verktøy for å spørre og bruke konfigurasjoner for sikker oppstart lokalt på en maskin.
|
Funksjonsnavn |
WinCS-nøkkel |
Beskrivelse |
|
Feature_AllKeysAndBootMgrByWinCS |
F33E0C8E002 |
Hvis du aktiverer denne nøkkelen, kan du installere følgende nye sertifikater for sikker oppstart fra Microsoft på enheten.
|
Referanse: WinCS-API-er (Windows Configuration System) for sikker oppstart
tilbake til «Referanse for innstillinger for sertifikat Oppdateringer»
Arkitektur
Fase 1: Gjenkjenning og statusovervåking på Enterprise-nivå
I dette avsnittet
Skript som kreves for fase 1
Eksempel på skript for datainnsamling for sikker oppstart av lager
|
Navn på eksempelskript |
Formål |
Kjører på |
|
Samler inn enhetsstatusdata |
Hvert endepunkt (via GPO) |
|
|
Genererer rapporter og instrumentbord |
Admin arbeidsstasjon |
|
|
Automatiserer oppretting av gruppepolicyobjekt for datainnsamling |
Domenekontroller |
tilbake til «Fase 1: Gjenkjenning og statusovervåking på Enterprise-nivå»
Lokal testing
Før du distribuerer via GPO, tester du samlingsskriptet på én enkelt maskin for å bekrefte funksjonalitet.
-
Kjør samlingsskript lokalt Åpne en hevet PowerShell-ledetekst og utfør:
& .\Detect-SecureBootCertUpdateStatus.ps1 -OutputPath "C:\Temp\SecureBootTest"
-
Bekreft JSON-utdata
# View the collected data Get-Content "C:\Temp\SecureBootTest\*_latest.json" | ConvertFrom-Json | Format-List
Nøkkelfelt som skal bekreftes • SecureBootEnabled – skal være sann eller usann • OverallStatus – Complete, ReadyForUpdate, NeedsData eller Error • BucketHash – enhetssamling for konfidensdatasamsvar • SecureBootTaskEnabled - Viser status for oppgaven for sikker oppstartsoppdatering.
-
Testaggregasjonsskript
# Generate reports from collected data & .\Aggregate-SecureBootCertStatus.ps1" ' -InputPath "C:\Temp\SecureBootTest" ' -OutputPath "C:\Temp\SecureBootReports" # Åpne HTML-instrumentbordet
Start-Process "C:\Temp\SecureBootReports\SecureBoot_Dashboard_*.html"
tilbake til «Fase 1: Gjenkjenning og statusovervåking på Enterprise-nivå»
GPO-distribusjon
Bruk automatiseringsskriptet fra en domenekontroller:
# Kjør på domenekontrolleren som domene Admin for interaktiv OU-inndeling – anbefalt # Erstatt «Contoso.com», «Contoso» med navnet på domenet # Erstatt FILESERVER med filnavnet. Skriptet viser listen over OU-er som GPO skal distribueres på .\Deploy-GPO-SecureBootCollection.ps1 ' -DomainName "contoso.com" ' -AutoDetectOU ' -CollectionSharePath "\\FILESERVER\SecureBootLogs$" ' -ScriptSourcePath ".\Detect-SecureBootCertUpdateStatus.ps1" ' -Planlegg "Daglig" ' -ScheduleTime "14:00" ' -RandomDelayHours 4
Dette skriptet utfører følgende:
-
Oppretter nytt gruppepolicyobjekt med angitt navn
-
Kopierer samlingsskript til SYSVOL for høy tilgjengelighet
-
Konfigurerer oppstartsskript for datamaskin
-
Koblinger GPO til mål-OU
-
Du kan også opprette planlagt aktivitet for periodisk samling
Tabellen nedenfor gir veiledning i hvor lenge forsinkelsen vil være basert på din flåtestørrelse.
|
Flåtestørrelse |
Forsinkelsesområde |
|
1–10 000 enheter |
4 timer |
|
10K-50K-enheter |
8 timer |
|
50 000 000 enheter |
12–24 timer |
tilbake til «Fase 1: Gjenkjenning og statusovervåking på Enterprise-nivå»
Sammendrag av innstillinger for gruppepolicyobjekt
|
Innstilling |
Posisjon |
Verdi |
|
Oppstartsskript |
Konfigurasjonsskript for datamaskinkonfigurasjon → |
Detect-SecureBootCertUpdateStatus.ps1 |
|
Skriptparametere |
(samme) |
-OutputPath "\\server\share$" |
|
Kjøringspolicy |
Maler for konfigurasjon → Admin datamaskin → PowerShell |
Tillat lokal og ekstern signert |
|
Planlagt aktivitet |
Innstillinger for → datamaskinkonfigurasjon → planlagte oppgaver |
Daglig/ukentlig samling |
tilbake til «Fase 1: Gjenkjenning og statusovervåking på Enterprise-nivå»
Kontroll
-
Tving GPO-oppdatering på Test Machine
## On a test workstation gpupdate /force # Start klientmaskinene på nytt til oppstartsskript, ellers utløses det etter neste tidsplan. Restart-Computer -Force
-
Bekreft datainnsamling
# Kontroller om data ble samlet inn (på filserver eller fra en hvilken som helst maskin) Get-ChildItem "\\fileserver\SecureBootData$" | Sort-Object LastWriteTime -Descending | Select-Object –Første 10 # Bekreft JSON-innhold Get-Content "\\fileserver\SecureBootData$\TESTPC_latest.json" | ConvertFrom-Json
-
Kontroller GPO-program
# Kontroller at gruppepolicyobjekt er brukt på datamaskinen gpresult /r /scope:computer | Select-String SecureBoot S Skriptet lagrer også en lokal kopi for redundans: Get-ChildItem "C:\ProgramData\SecureBootCollection\"
tilbake til «Fase 1: Gjenkjenning og statusovervåking på Enterprise-nivå»
Fase 2: Orkestreringsskript for sikker oppstartssertifikatoppdatering
Viktig!: Sørg for at fase1 er fullført, inkludert datainnsamling på hvert endepunkt til eksterne serverressurser.
I dette avsnittet
Skript som kreves for fase 2
Eksempel på skript for datainnsamling for sikker oppstart av lager
|
Eksempel på skriptnavn |
Formål |
Kjører på |
|
Samler inn enhetsstatusdata |
Hvert endepunkt (via GPO) |
|
|
Genererer rapporter og instrumentbord |
Admin arbeidsstasjon |
|
|
Automatiserer oppretting av gruppepolicyobjekt for datainnsamling |
Domenekontroller |
|
|
Helautomatisk, kontinuerlig orkestrering med automatisert GPO-distribusjon for sertifikatinstallasjon |
Admin arbeidsstasjon |
|
|
Distribuerer Orchestrator-skript som planlagt oppgave for automatisert utrulling |
Domenekontroller |
|
|
Vis status for utrulling av sertifikat for sikker oppstart fra en hvilken som helst arbeidsstasjon |
Admin Workstation |
|
|
Aktiverer oppgave for sikker oppstartsoppdatering |
På sluttpunkter der oppgaven er deaktivert (Kjør bare én gang for å aktivere oppgaven hvis deaktivert) |
tilbake til «Fase 2: Secure Boot Certificate Update Orchestration Scripts»
Start-SecureBootRolloutOrchestrator.ps1
-
Formål: Helautomatisk, kontinuerlig orkestrering med automatisert GPO-distribusjon.
-
Hva den gjør
-
Kaller Aggregate-SecureBootData.ps1 for enhetsstatus
-
Genererer utrullingsbølger ved hjelp av progressiv dobling
-
Oppretter gruppepolicyobjekt for sertifikatdistribusjon ved hjelp av én av følgende metoder
-
Policy for sikker oppstart av gruppepolicy AvailableUpdatesPolicy = 0x5944 (standard)
-
WinCS-metode (Parameter –UseWinCS)
-
-
Oppretter AD-sikkerhetsgrupper for målretting
-
Legger til datakontoer i sikkerhetsgrupper
-
Konfigurerer filtrering av GPO-sikkerhet
-
Koblinger GPO til mål-OU
-
Skjermer for blokkerte samlinger (enheter som ikke kan nås)
-
Automatisk opphev blokkering når enheter gjenopprettes
-
-
Bruk
# 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
-
Admin 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
-
Parametere
Parameter
Standard
Beskrivelse
AggregationInputPath
Obligatorisk
UNC-bane til JSON-endepunktfiler
ReportBasePath
Obligatorisk
Lokal bane for rapporter og delstat
TargetOU
Domenerot
Ou å koble gpoer
WavePrefix
SecureBoot-Rollout
Prefiks for navngiving av gruppe/gruppe
MaxWaitHours
72
Timer før du kontrollerer enhetens rekkevidde
PollIntervalMinutes
1440
Minutter mellom statuskontroller
DryRun
False
Vis hva som ville skje uten endringer
tilbake til «Fase 2: Secure Boot Certificate Update Orchestration Scripts»
Deploy-OrchestratorTask.ps1
-
Formål: Distribuerer orchestratoren som en Windows-planlagt oppgave.
-
Fordeler
-
Ingen PowerShell-sikkerhetsmeldinger (ExecutionPolicy Bypass)
-
Kjører kontinuerlig i bakgrunnen
-
Ingen brukersamhandling kreves
-
Overlever omstarter
-
-
Bruk
-
Distribuer med domenetjenestekonto (anbefales)
-
Bruk AvailableUpdates gruppepolicy (standardmetode)
.\Deploy-OrchestratorTask.ps1 ' -AggregationInputPath "\\server\SecureBootData$" ' -ReportBasePath "C:\SecureBootReports" ' -ServiceAccount "DOMAIN\svc_secureboot"
-
Bruk WinCS-metode
.\Deploy-OrchestratorTask.ps1 ' -AggregationInputPath "\\server\SecureBootData$" ' -ReportBasePath "C:\SecureBootReports" ' -ServiceAccount "DOMAIN\svc_secureboot" -UseWinCS
-
-
Distribuer med SYSTEM-konto
-
Bruk AvailableUpdates gruppepolicy (standardmetode)
.\Deploy-OrchestratorTask.ps1 ' -AggregationInputPath "\\server\SecureBootData$" ' -ReportBasePath "C:\SecureBootReports"
-
Bruk WinCS method.\Deploy-OrchestratorTask.ps1
-AggregationInputPath "\\server\SecureBootData$" ' -ReportBasePath "C:\SecureBootReports" -UseWinCS
-
Krav til tjenestekonto
-
Domain Admin (for New-GPO, New-ADGroup, Add-ADGroupMember)
-
Lesetilgang til delt JSON-filressurs
-
Skrive tilgang til ReportBasePath
-
-
-
tilbake til «Fase 2: Secure Boot Certificate Update Orchestration Scripts»
Get-SecureBootRolloutStatus.ps1
-
Formål: Vis utrullingsfremdrift fra en hvilken som helst arbeidsstasjon.
-
Hva det viser
-
Planlagt aktivitetstilstand (kjører/klar/stoppet)
-
Gjeldende bølgenummer
-
Enheter målrettet kontra oppdatert
-
Visuell fremdriftsindikator
-
Sammendrag av blokkerte samlinger
-
Kobling til det nyeste HTML-instrumentbordet
-
-
Bruk
# 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å utdata
============================================================== STATUS FOR SIKKER OPPSTARTSUTRULLING 2026-02-17 19:30:00 ======================================================
Scheduled Task: Running
ROLLOUT PROGRESS ---------------------------------------- Status: InProgress Gjeldende bølge: 5 Totalt målrettet: 1250 Totalt oppdatert: 847
Progress: [█████████████████████░░░░░░░░░░░░░░░░░░░] 67.8%
BLOCKED BUCKETS: 2 buckets need attention Kjør med -ShowBlocked for detaljer
LATEST DASHBOARD C:\SecureBootReports\Aggregation_20260217_193000\SecureBoot_Dashboard.html __________________________________________________________________________________________
tilbake til «Fase 2: Secure Boot Certificate Update Orchestration Scripts»
E2E-distribusjonstrinn (hurtigreferanse)
I dette avsnittet
Fase 1: Gjenkjenningsinfrastruktur
-
Trinn 1: Opprett samlingsdeling
# 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
-
Trinn 2: Distribuer GPO for gjenkjenning
.\Deploy-GPO-SecureBootCollection.ps1 ` -DomainName "contoso.com" ' -OUPath "OU=Workstations,DC=contoso,DC=com" ' -CollectionSharePath "\\server\SecureBootData$"
-
Trinn 3: Vent til endepunktene rapporteres (24–48 timer)
# Kontroller samlingsfremdrift (Get-ChildItem "\\server\SecureBootData$" -Filter "*.json"). Telle
Fase 2: Orkestrert utrulling
-
Trinn 4: Forutsetningskontroll
-
GPO for gjenkjenning distribuert (trinn 2)
-
Minst 50 + endepunkter rapporterer JSON
-
Tjenestekonto med domenerettigheter Admin
-
Administrasjonsserver med PowerShell 5.1+
-
-
Trinn 5: Distribuer Orchestrator som planlagt oppgave
.\Deploy-OrchestratorTask.ps1 ` -AggregationInputPath "\\server\SecureBootData$" ' -ReportBasePath "C:\SecureBootReports" ' -ServiceAccount "DOMAIN\svc_secureboot"
-
Trinn 6: Overvåke fremdrift
.\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports"
-
Trinn 7: Vis instrumentbord
.\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports" -OpenDashboard
-
Trinn 8: Behandle blokkerte samlinger
# List blocked .\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -ListBlockedBuckets
# Investigate and unblock .\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -UnblockBucket "Manufacturer|Modell|BIOS"
-
Trinn 9: Bekreft fullføring
.\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports" # Status skal vise Fullført
Delstat Files
Orchestratoren opprettholder tilstanden i ReportBasePath\RolloutState\:
|
Fil |
Beskrivelse |
|
RolloutState.json |
Bølgelogg, målrettede enheter, status |
|
BlockedBuckets.json |
Samlinger som trenger undersøkelse |
|
DeviceHistory.json |
Enhetssporing etter vertsnavn |
|
Orchestrator_YYYYMMDD.log |
Daglige aktivitetslogger |
Feilsøking
I dette avsnittet
Orchestratoren går ikke videre
-
Kontrollere planlagt aktivitet
Get-ScheduledTask -TaskName "SecureBoot-Rollout-Orchestrator"
-
Kontroller logger
Get-Content "C:\SecureBootReports\RolloutState\Orchestrator_*.log" -Tail 50
-
Bekreft oppdatering av JSON-data
(Get-ChildItem "\\server\SecureBootData$" -Filter "*.json" | Where-Object { $_.LastWriteTime -gt (Get-Date).AddDays(-1) }).Count
Blokkerte samlinger
-
Listen er blokkert.
.\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -ListBlockedBuckets
-
Undersøk enhetens rekkevidde.
-
Se etter problemer med fastvaren.
-
Opphev blokkeringen etter etterforskningen.
GPO gjelder ikke
-
Kontroller at gruppepolicyobjektet finnes.
Get-GPO -Name "SecureBoot-Rollout-Wave*"
-
Kontroller sikkerhetsfiltrering.
Get-GPPermission -Name "GPO-Name" -All
-
Kontroller at datamaskinen er i sikkerhetsgruppen.
-
Bruk gruppepolicyobjektet på målet.
gpupdate /force