Gäller för
Windows 10, version 1607, all editions Win 10 Ent LTSB 2016 Win 10 IoT Ent LTSB 2016 Windows 10, version 1809, all editions Win 10 Ent LTSC 2019 Win 10 IoT Ent LTSC 2019 Windows 10 ESU Windows 10 Enterprise LTSC 2021 Windows 10 IoT Enterprise LTSC 2021 Windows 11 version 23H2, all editions Windows 11 version 24H2, all editions Windows 11 version 25H2, all editions Windows 11 version 26H1, all editions Windows Server 2016 Windows Server 2019 Windows Server 2022 Windows Server, version 23H2 Windows Server 2025

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.

Tillbaka till början

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

Tillbaka till början 

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.

  • Microsoft Corporation KEK 2K CA 2023

  • Windows UEFI CA 2023

  • Microsoft UEFI CA 2023

  • Microsoft Option UEFI ROM CA 2023

Referens: Windows Configuration System (WinCS) API:er för säker start

tillbaka till "Referens för Uppdateringar-inställningar för certifikat"

Tillbaka till början

Arkitektur

Arbetsflöde för arkitektur

Tillbaka till början 

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å 

Exempel på Detect-SecureBootCertUpdateStatus.ps1 skript 

Samlar in statusdata för enheten 

Varje slutpunkt (via GPO) 

Exempel på Aggregate-SecureBootData.ps1 skript 

Genererar rapporter och instrumentpaneler 

Admin arbetsstation 

Exempel på Deploy-GPO-SecureBootCollection.ps1 skript

Automatiserar skapande av GPO för datainsamling 

Domänkontrollant 

Instrumentpanel för status för säker start-certifikat

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å" 

Konfigurera nätverksresurs

  • Skapa nätverksresursen Skapa en dedikerad resurs för insamling av data på filservern:

    # Run on file server as Administrator  $SharePath = "D:\SecureBootCollection" $ShareName = "SecureBootData$" # Skapa mapp New-Item -ItemType Directory -Path $SharePath -Force # Skapa dold delning ($ suffix döljs från bäldningslistan) New-SmbShare -Name $ShareName -Path $SharePath '     -Beskrivning "Secure Boot Certificate Status Collection"     -FullAccess "Domänadministratörer" '     -ChangeAccess "Autentiserade användare"    

  • Konfigurera NTFS-behörigheter

    # Get current ACL  $Acl = Get-Acl $SharePath # Tillåt autentiserade användare att skriva filer $WriteRule = New-Object System.Security.AccessControl.FileSystemAccessRule(     "Autentiserade användare",     "CreateFiles,AppendData,WriteAttributes,WriteExtendedAttributes",     "ContainerInherit,ObjectInherit",     "Ingen",     "Tillåt" ) $Acl.AddAccessRule($WriteRule) # Tillåt domänadministratörer fullständig kontroll (för aggregering) $AdminRule = New-Object System.Security.AccessControl.FileSystemAccessRule(     "Domänadministratörer",     "FullControl",     "ContainerInherit,ObjectInherit",     "Ingen",     "Tillåt" ) $Acl.AddAccessRule($AdminRule) # Använd behörigheter Set-Acl -Path $SharePath -AclObject $Acl       

  • Verifiera Dela åtkomst

    # Test from a domain-joined workstation  Test-Path "\\fileserver\SecureBootData$" # Ska returnera: Sant

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å"

Tillbaka till början 

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å 

Exempel på Detect-SecureBootCertUpdateStatus.ps1 skript  

Samlar in statusdata för enheten 

Varje slutpunkt (via GPO) 

Exempel på Aggregate-SecureBootData.ps1 skript

Genererar rapporter och instrumentpaneler 

Admin arbetsstation 

Exempel på Deploy-GPO-SecureBootCollection.ps1 skript

Automatiserar skapande av GPO för datainsamling 

Domänkontrollant 

Exempel på Start-SecureBootRolloutOrchestrator.ps1 skript

Helt automatiserad, kontinuerlig orkestrering med automatiserad GPO-distribution för certifikatinstallation

Admin arbetsstation 

Exempel på Deploy-OrchestratorTask.ps1 skript

Distribuerar orkestreringsskript som schemalagd aktivitet för automatisk distribution

Domänkontrollant

Exempel på Get-SecureBootRolloutStatus.ps1 skript

Visa status för certifikat för säker start från valfri arbetsstation

Admin Workstation

Exempel på Enable-SecureBootUpdateTask.ps1 skript

 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"

Tillbaka till början 

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)" 

Tillbaka till början 

Felsökning

I det här avsnittet

Orkestreringsindikatorn fortsätter inte

  1. Kontrollera schemalagd aktivitet

    Get-ScheduledTask -TaskName "SecureBoot-Rollout-Orchestrator"

  2. Kontrollera loggar

    Get-Content "C:\SecureBootReports\RolloutState\Orchestrator_*.log" -Tail 50

  3. Kontrollera JSON-datas färskhet

    (Get-ChildItem "\\server\SecureBootData$" -Filter "*.json" | Where-Object { $_.LastWriteTime -gt (Get-Date).AddDays(-1) }).Count

tillbaka till "Felsökning" 

Blockerade buckets

  1. Listan är blockerad.

    .\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -ListBlockedBuckets

  2. Undersök enhetens räckvidd.

  3. Sök efter problem med inbyggd programvara.

  4. Häva blockeringen efter utredning.

tillbaka till "Felsökning"  

GPO gäller inte

  1. Kontrollera att GPO finns.

    Get-GPO -Name "SecureBoot-Rollout-Wave*"

  2. Kontrollera säkerhetsfiltrering.

    Get-GPPermission -Name "GPO-Name" -All

  3. Kontrollera att datorn ingår i säkerhetsgruppen.

  4. Tillämpa GPO på målet.

    gpupdate /force

tillbaka till "Felsökning"

Tillbaka till början 

Behöver du mer hjälp?

Vill du ha fler alternativ?

Utforska prenumerationsförmåner, bläddra bland utbildningskurser, lär dig hur du skyddar din enhet med mera.