Exempel på säker start E2E Automation Guide
Gäller för
Ursprungligt publiceringsdatum: den 16 mars 2026
KB-ID: 5084567
I denna artikel
Översikt
I den här guiden beskrivs det automatiserade distributionssystemet för Windows Secure Boot DB-certifikatuppdateringar med grupprincip och progressiva distributionsvågor.
Secure Boot Certificate Rollout Automation är ett PowerShell-baserat system som distribuerar Windows Secure Boot DB-certifikatuppdateringar till domänanslutna datorer på ett kontrollerat och graderat sätt.
Viktiga funktioner
|
Funktion |
Beskrivning |
|
Graderad distribution |
1 > 2 > 4 > 8... enheter per bucket |
|
Automatisk blockering |
Buckets med enheter som inte kan nås är undantagna |
|
Automatiserad GPO-distribution |
Ett enda orkestreringsskript hanterar allt |
|
Körning av schemalagd aktivitet |
Inga interaktiva uppmaningar krävs |
|
Realtidsövervakning |
Statusvisningsprogram med förloppsindikator |
Referens för inställningar för certifikat Uppdateringar
I det här avsnittet
AvailableUpdatesPolicy-grupprincip
|
Registerplats |
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecureBoot |
|
Namn |
AvailableUpdatesPolicy |
|
Värde |
0x5944 (DWORD) |
Det här är den GPO/ADMX-kontrollerade nyckeln som:
-
Finns kvar vid omstarter
-
Anges av grupprincip/MDM
-
Orsakar inte försök igen (rensas via ClearRolloutFlags)
-
Är rätt nyckel för principdriven distribution
Referens: grupprincip-metoden objekt (GPO) för Säker start för Windows-enheter med IT-hanterade uppdateringar
tillbaka till "Referens för Uppdateringar-inställningar för certifikat"
WinCSFlags – Windows-konfigurationssystemflaggor
Domänadministratörer kan också använda Windows Configuration System (WinCS) som släppts med Windows OS-uppdateringar för att distribuera uppdateringar för säker start mellan domänanslutna Windows-klienter och -servrar. Den består av ett CLI-verktyg (Command Line Interface) för frågor och tillämpar konfigurationer för säker start lokalt på en dator.
|
Funktions namn |
WinCS-nyckel |
Beskrivning |
|
Feature_AllKeysAndBootMgrByWinCS |
F33E0C8E002 |
Aktivering av den här nyckeln gör det möjligt att installera följande nya certifikat för Säker start från Microsoft på din enhet.
|
Referens: Windows Configuration System (WinCS) API:er för säker start
tillbaka till "Referens för Uppdateringar-inställningar för certifikat"
Arkitektur
Fas 1: Övervakning av identifiering och status på företagsnivå
I det här avsnittet
Skript som behövs för fas 1
Exempel på skript för insamling av lagerdata för säker start
|
Exempelskriptnamn |
Syfte |
Körs på |
|
Samlar in statusdata för enheten |
Varje slutpunkt (via GPO) |
|
|
Genererar rapporter och instrumentpaneler |
Admin arbetsstation |
|
|
Automatiserar skapande av GPO för datainsamling |
Domänkontrollant |
tillbaka till "Fas 1: Övervakning av identifiering och status på företagsnivå"
Lokal testning
Innan du distribuerar via GPO ska du testa samlingsskriptet på en enda dator för att verifiera funktionaliteten.
-
Kör samlingsskript lokalt Öppna en upphöjd PowerShell-fråga och kör:
& .\Detect-SecureBootCertUpdateStatus.ps1 -OutputPath "C:\Temp\SecureBootTest"
-
Verifiera JSON-utdata
# View the collected data Get-Content "C:\Temp\SecureBootTest\*_latest.json" | ConvertFrom-Json | Format-List
Nyckelfält att verifiera • SecureBootEnabled – Ska vara Sant eller Falskt • OverallStatus – Complete, ReadyForUpdate, NeedsData eller Error • BucketHash – enhetsbucket för konfidensdatamatchning • SecureBootTaskEnabled – Visar status för säker start-uppdateringsuppgift.
-
Test Aggregation Script
# Generate reports from collected data & .\Aggregate-SecureBootCertStatus.ps1" ' -InputPath "C:\Temp\SecureBootTest" ' -OutputPath "C:\Temp\SecureBootReports" # Öppna HTML-instrumentpanelen
Start-Process "C:\Temp\SecureBootReports\SecureBoot_Dashboard_*.html"
tillbaka till "Fas 1: Övervakning av identifiering och status på företagsnivå"
GPO-distribution
Använd automatiseringsskriptet från en domänkontrollant:
# Kör på domänkontrollanten som Admin för interaktivt OU-avsnitt – rekommenderas # Ersätt "Contoso.com", "Contoso" med namnet på domänen # Ersätt FILESERVER med filserverns namn. Skript som visar en lista över OU:er som ska distribueras till .\Deploy-GPO-SecureBootCollection.ps1 ' -DomainName "contoso.com" ' -AutoDetectOU ' -CollectionSharePath "\\FILESERVER\SecureBootLogs$" ' -ScriptSourcePath ".\Detect-SecureBootCertUpdateStatus.ps1" ' -Schemalägg "Dagligen" -ScheduleTime "14:00" ' -RandomDelayHours 4
Det här skriptet utför följande:
-
Skapar nytt GPO med angivet namn
-
Kopierar samlingsskript till SYSVOL för hög tillgänglighet
-
Konfigurerar datorns startskript
-
Länkar GPO till mål-OU
-
Om du vill kan du skapa en schemalagd aktivitet för periodisk samling
I följande tabell får du vägledning om hur länge förseningen kommer att baseras på din flottstorlek.
|
Flottstorlek |
Fördröjningsintervall |
|
1–10 000 enheter |
4 timmar |
|
10K-50K-enheter |
8 timmar |
|
Över 50 000 enheter |
12–24 timmar |
tillbaka till "Fas 1: Övervakning av identifiering och status på företagsnivå"
Sammanfattning av GPO-inställningar
|
Inställning |
Positionering |
Värde |
|
Startskript |
Datorkonfigurationsskript → |
Detect-SecureBootCertUpdateStatus.ps1 |
|
Skriptparametrar |
(samma) |
-OutputPath "\\server\share$" |
|
Körningsprincip |
Datorkonfigurationsmallar → Admin → PowerShell |
Tillåt lokal och fjärrsignerad |
|
Schemalagd aktivitet |
Inställningar för datorkonfiguration → → schemalagda aktiviteter |
Daglig/veckovis samling |
tillbaka till "Fas 1: Övervakning av identifiering och status på företagsnivå"
Verifiering
-
Force GPO Update on Test Machine
## On a test workstation gpupdate /force # Starta om klientdatorerna för att starta skript, annars utlöses det vid nästa schema. Restart-Computer -Force
-
Verifiera datainsamling
# Kontrollera om data har samlats in (på filservern eller från en dator) Get-ChildItem "\\fileserver\SecureBootData$" | Sort-Object LastWriteTime -Descending | Select-Object -Första 10 # Verifiera JSON-innehåll Get-Content "\\fileserver\SecureBootData$\TESTPC_latest.json" | ConvertFrom-Json
-
Kontrollera GPO-program
# Kontrollera att GPO används på datorn gpresult /r /scope:computer | Select-String "SecureBoot" S Skriptet sparar också en lokal kopia för redundans: Get-ChildItem "C:\ProgramData\SecureBootCollection\"
tillbaka till "Fas 1: Övervakning av identifiering och status på företagsnivå"
Fas 2: Orkestreringsskript för säker start av certifikatuppdatering
Viktigt!: Kontrollera att fas1 är slutförd, inklusive datainsamling på varje slutpunkt till fjärrserverresurser.
I det här avsnittet
Skript som behövs för fas 2
Exempel på skript för insamling av lagerdata för säker start
|
Exempelskriptnamn |
Syfte |
Körs på |
|
Samlar in statusdata för enheten |
Varje slutpunkt (via GPO) |
|
|
Genererar rapporter och instrumentpaneler |
Admin arbetsstation |
|
|
Automatiserar skapande av GPO för datainsamling |
Domänkontrollant |
|
|
Helt automatiserad, kontinuerlig orkestrering med automatiserad GPO-distribution för certifikatinstallation |
Admin arbetsstation |
|
|
Distribuerar orkestreringsskript som schemalagd aktivitet för automatisk distribution |
Domänkontrollant |
|
|
Visa status för certifikat för säker start från valfri arbetsstation |
Admin Workstation |
|
|
Aktiverar uppgift för säker start-uppdatering |
På slutpunkter där aktiviteten är inaktiverad (Kör endast en gång för att aktivera aktiviteten om den är inaktiverad) |
tillbaka till "Fas 2: Secure Boot Certificate Update Orchestration Scripts"
Start-SecureBootRolloutOrchestrator.ps1
-
Syfte: Helt automatiserad, kontinuerlig orkestrering med automatiserad GPO-distribution.
-
Vad den gör
-
Samtal Aggregate-SecureBootData.ps1 för enhetsstatus
-
Genererar distributionsvågor med progressiv fördubbling
-
Skapar GPO för certifikatdistribution med någon av följande metoder
-
Grupprincip för säker start AvailableUpdatesPolicy = 0x5944 (standard)
-
WinCS-metod (Parameter – UseWinCS)
-
-
Skapar AD-säkerhetsgrupper för inriktning
-
Lägger till datorkonton i säkerhetsgrupper
-
Konfigurerar GPO-säkerhetsfiltrering
-
Länkar GPO till mål-OU
-
Bildskärmar för blockerade buckets (oåtkomliga enheter)
-
Automatisk avblockering när enheter återställs
-
-
Användning
# 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 kommandon
# 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
-
Parametrar
Parameter
Standard
Beskrivning
AggregationInputPath
Obligatorisk
UNC-sökväg till slutpunkts-JSON-filer
ReportBasePath
Obligatorisk
Lokal sökväg för rapporter och tillstånd
TargetOU
Domänrot
OU för att länka GPU:er
WavePrefix
SecureBoot-Rollout
Namnprefix för GPO/grupp
MaxWaitHours
72
Timmar innan enheten kan nås
PollIntervalMinutes
1440
Minuter mellan statuskontroller
DryRun
False
Visa vad som skulle hända utan ändringar
tillbaka till "Fas 2: Secure Boot Certificate Update Orchestration Scripts"
Deploy-OrchestratorTask.ps1
-
Syfte: Distribuerar orkestratorn som en schemalagd Aktivitet i Windows.
-
Förmåner
-
Inga PowerShell-säkerhetsmeddelanden (ExecutionPolicy Bypass)
-
Körs i bakgrunden kontinuerligt
-
Ingen användarinteraktion krävs
-
Överlever omstarter
-
-
Användning
-
Distribuera med domäntjänstkonto (rekommenderas)
-
Använd AvailableUpdates grupprincip (standardmetod)
.\Deploy-OrchestratorTask.ps1 ' -AggregationInputPath "\\server\SecureBootData$" ' -ReportBasePath "C:\SecureBootReports" ' -ServiceAccount "DOMAIN\svc_secureboot"
-
Använd WinCS-metoden
.\Deploy-OrchestratorTask.ps1 ' -AggregationInputPath "\\server\SecureBootData$" ' -ReportBasePath "C:\SecureBootReports" ' -ServiceAccount "DOMAIN\svc_secureboot" -UseWinCS
-
-
Distribuera med SYSTEM-konto
-
Använd AvailableUpdates grupprincip (standardmetod)
.\Deploy-OrchestratorTask.ps1 ' -AggregationInputPath "\\server\SecureBootData$" ' -ReportBasePath "C:\SecureBootReports"
-
Använda WinCS method.\Deploy-OrchestratorTask.ps1
-AggregationInputPath "\\server\SecureBootData$" ' -ReportBasePath "C:\SecureBootReports" -UseWinCS
-
Tjänstkontokrav
-
Domän Admin (för New-GPO, New-ADGroup, Add-ADGroupMember)
-
Läs åtkomst till JSON-filresurs
-
Skriva åtkomst till ReportBasePath
-
-
-
tillbaka till "Fas 2: Secure Boot Certificate Update Orchestration Scripts"
Get-SecureBootRolloutStatus.ps1
-
Syfte: Visa distributionsstatus från valfri arbetsstation.
-
Vad som visas
-
Status för schemalagd aktivitet (körs/är klar/stoppad)
-
Aktuellt vågnummer
-
Enheter riktade jämfört med uppdaterade
-
Visuell förloppsindikator
-
Sammanfattning av blockerade buckets
-
Länk till den senaste HTML-instrumentpanelen
-
-
Användning
# 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
-
Exempel på utdata
============================================================== STATUS FÖR SÄKER START- OCH DISTRIBUTION 2026-02-17 19:30:00 ======================================================
Scheduled Task: Running
ROLLOUT PROGRESS ---------------------------------------- Status: InProgress Aktuell våg: 5 Totalt riktad: 1250 Totalt uppdaterad: 847
Progress: [█████████████████████░░░░░░░░░░░░░░░░░░░] 67.8%
BLOCKED BUCKETS: 2 buckets need attention Kör med -ShowBlocked för mer information
LATEST DASHBOARD C:\SecureBootReports\Aggregation_20260217_193000\SecureBoot_Dashboard.html __________________________________________________________________________________________
tillbaka till "Fas 2: Secure Boot Certificate Update Orchestration Scripts"
E2E-distributionssteg (snabbreferensguide)
I det här avsnittet
Fas 1: Identifieringsinfrastruktur
-
Steg 1: Skapa samlingsresurs
# 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("Domändatorer","Ändra","Tillåt") $acl. AddAccessRule($rule) Set-Acl $sharePath $acl
-
Steg 2: Distribuera identifierings-GPO
.\Deploy-GPO-SecureBootCollection.ps1 ` -DomainName "contoso.com" ' -OUPath "OU=Workstations,DC=contoso,DC=com" ' -CollectionSharePath "\\server\SecureBootData$"
-
Steg 3: Vänta tills slutpunkter rapporteras (24–48 timmar)
# Kontrollera insamlingsstatus (Get-ChildItem "\\server\SecureBootData$" -Filter "*.json"). Räkna
tillbaka till "E2E Deployment Steps (Quick Reference Guide)"
Fas 2: Orkestrerad distribution
-
Steg 4: Kravkontroll
-
Identifiering av GPO distribuerat (steg 2)
-
Minst 50+ slutpunkter rapporterar JSON
-
Tjänstkonto med Admin-rättigheter för domän
-
Hanteringsserver med PowerShell 5.1+
-
-
Steg 5: Distribuera orkestrera som schemalagd aktivitet
.\Deploy-OrchestratorTask.ps1 ` -AggregationInputPath "\\server\SecureBootData$" ' -ReportBasePath "C:\SecureBootReports" ' -ServiceAccount "DOMAIN\svc_secureboot"
-
Steg 6: Övervaka förloppet
.\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports"
-
Steg 7: Visa instrumentpanel
.\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports" -OpenDashboard
-
Steg 8: Hantera blockerade buckets
# List blocked .\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -ListBlockedBuckets
# Investigate and unblock .\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -UnblockBucket "Manufacturer|Modell|BIOS"
-
Steg 9: Verifiera slutförande
.\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports" # Status ska visa "Slutförd"
tillbaka till "E2E Deployment Steps (Quick Reference Guide)"
Tillstånd Files
Orkestratorn behåller tillståndet i ReportBasePath\RolloutState\:
|
Arkiv |
Beskrivning |
|
RolloutState.json |
Våghistorik, riktade enheter, status |
|
BlockedBuckets.json |
Buckets som behöver undersökas |
|
DeviceHistory.json |
Enhetsspårning efter värdnamn |
|
Orchestrator_YYYYMMDD.log |
Dagliga aktivitetsloggar |
tillbaka till "E2E Deployment Steps (Quick Reference Guide)"
Felsökning
I det här avsnittet
Orkestreringsindikatorn fortsätter inte
-
Kontrollera schemalagd aktivitet
Get-ScheduledTask -TaskName "SecureBoot-Rollout-Orchestrator"
-
Kontrollera loggar
Get-Content "C:\SecureBootReports\RolloutState\Orchestrator_*.log" -Tail 50
-
Kontrollera JSON-datas färskhet
(Get-ChildItem "\\server\SecureBootData$" -Filter "*.json" | Where-Object { $_.LastWriteTime -gt (Get-Date).AddDays(-1) }).Count
Blockerade buckets
-
Listan är blockerad.
.\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -ListBlockedBuckets
-
Undersök enhetens räckvidd.
-
Sök efter problem med inbyggd programvara.
-
Häva blockeringen efter utredning.
GPO gäller inte
-
Kontrollera att GPO finns.
Get-GPO -Name "SecureBoot-Rollout-Wave*"
-
Kontrollera säkerhetsfiltrering.
Get-GPPermission -Name "GPO-Name" -All
-
Kontrollera att datorn ingår i säkerhetsgruppen.
-
Tillämpa GPO på målet.
gpupdate /force