Gjelder for
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

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.

tilbake til toppen

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

tilbake til toppen 

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

Referanse: gruppepolicy Objects (GPO)-metode for sikker oppstart for Windows-enheter med IT-administrerte oppdateringer

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.

  • Microsoft Corporation KEK 2K CA 2023

  • Windows UEFI CA 2023

  • Microsoft UEFI CA 2023

  • Microsoft Option UEFI ROM CA 2023

Referanse: WinCS-API-er (Windows Configuration System) for sikker oppstart

tilbake til «Referanse for innstillinger for sertifikat Oppdateringer»

tilbake til toppen

Arkitektur

Arkitekturarbeidsflyt

tilbake til toppen 

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å 

Eksempel på Detect-SecureBootCertUpdateStatus.ps1 skript 

Samler inn enhetsstatusdata 

Hvert endepunkt (via GPO) 

Eksempel på Aggregate-SecureBootData.ps1 skript 

Genererer rapporter og instrumentbord 

Admin arbeidsstasjon 

Eksempel på Deploy-GPO-SecureBootCollection.ps1 skript

Automatiserer oppretting av gruppepolicyobjekt for datainnsamling 

Domenekontroller 

Instrumentbord for status for sikker oppstartssertifikat

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

Konfigurasjon av nettverksdeling

  • Opprett nettverksdelingen Opprett en dedikert deling for innsamlingsdata på filserveren:

    # Run on file server as Administrator  $SharePath = "D:\SecureBootCollection" $ShareName = "SecureBootData$" # Opprett mappe New-Item -ItemType Directory -Path $SharePath -Force # Opprett skjult deling ($ suffiks skjuler fra bla gjennom-listen) New-SmbShare -Name $ShareName -Path $SharePath '     -Description "Secure Boot Certificate Status Collection" '     -FullAccess "Domain Admins" '     -ChangeAccess "Godkjente brukere"    

  • Konfigurer NTFS-tillatelser

    # Get current ACL  $Acl = Get-Acl $SharePath # Tillat godkjente brukere å skrive filer $WriteRule = New-Object System.Security.AccessControl.FileSystemAccessRule(     "Godkjente brukere",     "CreateFiles,AppendData,WriteAttributes,WriteExtendedAttributes",     "ContainerInherit,ObjectInherit",     "Ingen",     "Tillat" ) $Acl.AddAccessRule($WriteRule) # Tillat domeneadministratorer full kontroll (for aggregasjon) $AdminRule = New-Object System.Security.AccessControl.FileSystemAccessRule(     "Domeneadministratorer",     "FullControl",     "ContainerInherit,ObjectInherit",     "Ingen",     "Tillat" ) $Acl.AddAccessRule($AdminRule) # Bruk tillatelser Set-Acl -Path $SharePath -AclObject $Acl       

  • Bekreft Delingstilgang

    # Test from a domain-joined workstation  Test-Path "\\fileserver\SecureBootData$" # Skal returnere: Sann

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

tilbake til toppen 

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å 

Eksempel på Detect-SecureBootCertUpdateStatus.ps1 skript  

Samler inn enhetsstatusdata 

Hvert endepunkt (via GPO) 

Eksempel på Aggregate-SecureBootData.ps1 skript

Genererer rapporter og instrumentbord 

Admin arbeidsstasjon 

Eksempel på Deploy-GPO-SecureBootCollection.ps1 skript

Automatiserer oppretting av gruppepolicyobjekt for datainnsamling 

Domenekontroller 

Eksempel på Start-SecureBootRolloutOrchestrator.ps1 skript

Helautomatisk, kontinuerlig orkestrering med automatisert GPO-distribusjon for sertifikatinstallasjon

Admin arbeidsstasjon 

Eksempel på Deploy-OrchestratorTask.ps1 skript

Distribuerer Orchestrator-skript som planlagt oppgave for automatisert utrulling

Domenekontroller

Eksempel på Get-SecureBootRolloutStatus.ps1 skript

Vis status for utrulling av sertifikat for sikker oppstart fra en hvilken som helst arbeidsstasjon

Admin Workstation

Eksempel på Enable-SecureBootUpdateTask.ps1 skript

 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»

tilbake til toppen 

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

tilbake til «E2E-distribusjonstrinn (hurtigreferanse)» 

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

tilbake til «E2E-distribusjonstrinn (hurtigreferanse)»  

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

tilbake til «E2E-distribusjonstrinn (hurtigreferanse)» 

tilbake til toppen 

Feilsøking

I dette avsnittet

Orchestratoren går ikke videre

  1. Kontrollere planlagt aktivitet

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

  2. Kontroller logger

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

  3. Bekreft oppdatering av JSON-data

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

tilbake til Feilsøking 

Blokkerte samlinger

  1. Listen er blokkert.

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

  2. Undersøk enhetens rekkevidde.

  3. Se etter problemer med fastvaren.

  4. Opphev blokkeringen etter etterforskningen.

tilbake til Feilsøking  

GPO gjelder ikke

  1. Kontroller at gruppepolicyobjektet finnes.

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

  2. Kontroller sikkerhetsfiltrering.

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

  3. Kontroller at datamaskinen er i sikkerhetsgruppen.

  4. Bruk gruppepolicyobjektet på målet.

    gpupdate /force

tilbake til Feilsøking

tilbake til toppen 

Trenger du mer hjelp?

Vil du ha flere alternativer?

Utforsk abonnementsfordeler, bla gjennom opplæringskurs, finn ut hvordan du sikrer enheten og mer.