Van toepassing op
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

Oorspronkelijke publicatiedatum: dinsdag 16 maart 2026

KB-id: 5084567

In dit artikel

Overzicht

In deze handleiding wordt het geautomatiseerde implementatiesysteem voor certificaatupdates van Windows Secure Boot DB beschreven met behulp van groepsbeleid en progressieve implementatiegolven.

De Secure Boot Certificate Rollout Automation is een PowerShell-systeem waarmee Windows Secure Boot DB-certificaatupdates worden geïmplementeerd op computers die lid zijn van een domein, op een gecontroleerde, gefaseerde manier.

Terug naar boven

Belangrijkste functies

Functie

Beschrijving

Gegradueerde implementatie

1 > 2 > 4 > 8... apparaten per bucket

Automatische blokkering

Buckets met onbereikbare apparaten zijn uitgesloten

Geautomatiseerde implementatie van groepsbeleidsobjecten

Eén orchestratorscript verwerkt alles

Geplande taakuitvoering

Geen interactieve prompts vereist

Realtime bewaking

Statusviewer met voortgangsbalk

Terug naar boven 

Referentie voor certificaatinstellingen Updates

In deze sectie

Groepsbeleid voor AvailableUpdatesPolicy

Registerlocatie

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecureBoot

Naam

AvailableUpdatesPolicy

Waarde

0x5944 (DWORD)

Dit is de door GPO/ADMX beheerde sleutel die:

  • Blijft behouden tijdens het opnieuw opstarten

  • Is ingesteld door groepsbeleid/MDM

  • Veroorzaakt geen lussen voor opnieuw proberen (gewist via ClearRolloutFlags)

  • Is de juiste sleutel voor beleidsgestuurde implementatie

Naslaginformatie: groepsbeleid-GPO-methode (GPO) van Beveiligd opstarten voor Windows-apparaten met door IT beheerde updates

terug naar 'Referentie voor certificaatinstellingen Updates' 

WinCSFlags - Windows Configuration System Flags

Domeinbeheerders kunnen ook het Windows Configuration System (WinCS) gebruiken dat is uitgebracht met Windows-besturingssysteemupdates om de updates voor beveiligd opstarten te implementeren op Windows-clients en -servers die lid zijn van een domein. Het bestaat uit een cli-hulpprogramma (opdrachtregelinterface) om query's uit te voeren en configuraties voor beveiligd opstarten lokaal toe te passen op een computer.

Functienaam

WinCS-sleutel

Beschrijving

Feature_AllKeysAndBootMgrByWinCS

F33E0C8E002

Als u deze sleutel inschakelt, kunt u de volgende door Microsoft geleverde nieuwe certificaten voor beveiligd opstarten op uw apparaat installeren.

  • Microsoft Corporation KEK 2K CA 2023

  • Windows UEFI CA 2023

  • Microsoft UEFI CA 2023

  • Microsoft Option UEFI ROM CA 2023

Naslaginformatie: Windows Configuration System (WinCS) API's voor beveiligd opstarten

terug naar 'Referentie voor certificaatinstellingen Updates'

Terug naar boven

Architectuur

Architectuurwerkstroom

Terug naar boven 

Fase 1: Detectie en statusbewaking op ondernemingsniveau

In deze sectie

Scripts die nodig zijn voor fase 1

Voorbeeld van scripts voor het verzamelen van inventarisgegevens voor beveiligd opstarten

Voorbeeldscriptnaam

Purpose 

Wordt uitgevoerd op 

Voorbeeldscript voor Detect-SecureBootCertUpdateStatus.ps1 

Verzamelt apparaatstatusgegevens 

Elk eindpunt (via groepsbeleidsobject) 

Voorbeeldscript voor Aggregate-SecureBootData.ps1 

Rapporten en dashboards genereren 

Beheer werkstation 

Voorbeeldscript voor Deploy-GPO-SecureBootCollection.ps1

Automatiseert het maken van groepsbeleidsobjecten voor gegevensverzameling 

Domeincontroller 

Certificaatstatusdashboard beveiligd opstarten

terug naar 'Fase 1: detectie en statusbewaking op ondernemingsniveau'

Lokaal testen

Voordat u via GPO implementeert, test u het verzamelingsscript op één computer om de functionaliteit te verifiëren. 

  • Verzamelingsscript lokaal uitvoeren Open een PowerShell-prompt met verhoogde bevoegdheid en voer het volgende uit:

    & .\Detect-SecureBootCertUpdateStatus.ps1 -OutputPath "C:\Temp\SecureBootTest" 

  • JSON-uitvoer controleren

    # View the collected data  Get-Content "C:\Temp\SecureBootTest\*_latest.json" | ConvertFrom-Json | Format-List

    Sleutelvelden om te controleren  SecureBootEnabled – moet waar of onwaar zijn • OverallStatus – Complete, ReadyForUpdate, NeedsData of Error BucketHash – Apparaat-bucket voor het afstemmen van betrouwbaarheidsgegevens • SecureBootTaskEnabled : geeft de status van de updatetaak voor beveiligd opstarten weer.

  • Aggregatiescript testen

    # Generate reports from collected data  & .\Aggregate-SecureBootCertStatus.ps1'     -InputPath "C:\Temp\SecureBootTest" '     -OutputPath "C:\Temp\SecureBootReports" # Open het HTML-dashboard   

    Start-Process "C:\Temp\SecureBootReports\SecureBoot_Dashboard_*.html"

terug naar 'Fase 1: detectie en statusbewaking op ondernemingsniveau' 

Netwerkshare instellen

  • De netwerkshare maken Maak op uw bestandsserver een toegewezen share voor het verzamelen van gegevens:

    # Run on file server as Administrator  $SharePath = "D:\SecureBootCollection" $ShareName = "SecureBootData$" # Map maken New-Item -ItemType Directory -Path $SharePath -Force # Verborgen share maken ($ achtervoegsel wordt verborgen in de browselijst) New-SmbShare -Naam $ShareName -Pad $SharePath '     -Beschrijving "Secure Boot Certificate Status Collection" '     -FullAccess "Domeinbeheerders" '     -ChangeAccess 'Geverifieerde gebruikers'    

  • NTFS-machtigingen configureren

    # Get current ACL  $Acl = Get-Acl $SharePath # Geverifieerde gebruikers toestaan om bestanden te schrijven $WriteRule = New-Object System.Security.AccessControl.FileSystemAccessRule(     'Geverifieerde gebruikers',     "CreateFiles,AppendData,WriteAttributes,WriteExtendedAttributes",     "ContainerInherit,ObjectInherit",     "Geen",     "Toestaan" ) $Acl.AddAccessRule($WriteRule) # Geef domeinbeheerders volledige controle (voor aggregatie) $AdminRule = New-Object System.Security.AccessControl.FileSystemAccessRule(     "Domeinbeheerders",     "FullControl",     "ContainerInherit,ObjectInherit",     "Geen",     "Toestaan" ) $Acl.AddAccessRule($AdminRule) # Machtigingen toepassen Set-Acl -Path $SharePath -AclObject $Acl       

  • Toegang tot delen controleren

    # Test from a domain-joined workstation  Test-Path \\fileserver\SecureBootData$" # moet retourneren: Waar

terug naar 'Fase 1: detectie en statusbewaking op ondernemingsniveau' 

GPO-implementatie

Gebruik het automatiseringsscript van een domeincontroller:

# Uitvoeren op domeincontroller als domein Beheer voor interactieve OE-sectie – aanbevolen # Vervang de 'Contoso.com', 'Contoso' door de naam van het domein # Vervang FILESERVER door de naam van de bestandsserver.  Script toont een lijst met OE's voor het implementeren van groepsbeleidsobject op .\Deploy-GPO-SecureBootCollection.ps1 '     -Domeinnaam "contoso.com" '     -AutoDetectOU '     -CollectionSharePath "\\FILESERVER\SecureBootLogs$" '     -ScriptSourcePath ".\Detect-SecureBootCertUpdateStatus.ps1" '     -Planning "Dagelijks" '     -ScheduleTime "14:00" '     -RandomDelayHours 4 

Met dit script wordt het volgende uitgevoerd:

  • Maakt een nieuw groepsbeleidsobject met de opgegeven naam

  • Verzamelingsscript kopiëren naar SYSVOL voor hoge beschikbaarheid

  • Opstartscript voor computer configureren

  • Groepsbeleidsobject koppelen aan doel-OE

  • Maakt optioneel een geplande taak voor periodieke verzameling

De volgende tabel bevat richtlijnen voor hoe lang de vertraging zal zijn op basis van de grootte van uw vloot.

Vlootgrootte 

Vertragingsbereik 

1-10.000 apparaten 

4 uur 

10.000-50.000 apparaten 

8 uur 

Meer dan 50.000 apparaten 

12-24 uur

terug naar 'Fase 1: detectie en statusbewaking op ondernemingsniveau' 

Overzicht van instellingen voor groepsbeleidsobjecten

Instelling 

Locatie 

Waarde 

Opstartscript 

Scripts voor computerconfiguratie → 

Detect-SecureBootCertUpdateStatus.ps1 

Scriptparameters 

(zelfde) 

-OutputPath "\\server\share$" 

Uitvoeringsbeleid 

Sjablonen voor computerconfiguratie → Beheer → PowerShell 

Lokaal en extern ondertekend toestaan 

Geplande taak 

Voorkeuren voor computerconfiguratie → → geplande taken 

Dagelijkse/wekelijkse verzameling

terug naar 'Fase 1: detectie en statusbewaking op ondernemingsniveau' 

Verificatie

  • GPO-update forceren op Test Machine

    ## On a test workstation  gpupdate /force # Start de clientcomputers opnieuw op om het script op te starten of het wordt geactiveerd volgens de volgende planning.  Restart-Computer -Forceren

  • Gegevensverzameling verifiëren

    # Controleer of er gegevens zijn verzameld (op een bestandsserver of vanaf een computer) Get-ChildItem \\fileserver\SecureBootData$|       Sort-Object LastWriteTime -Aflopend |       Select-Object -Eerste 10   # JSON-inhoud controleren Get-Content \\fileserver\SecureBootData$\TESTPC_latest.json | ConvertFrom-Json 

  • Groepsbeleidsobjecttoepassing controleren

    # Controleer of GPO is toegepast op de computer gpresult /r /scope:computer | Select-String SecureBoot S Het script slaat ook een lokale kopie op voor redundantie: Get-ChildItem "C:\ProgramData\SecureBootCollection\" 

terug naar 'Fase 1: detectie en statusbewaking op ondernemingsniveau'

Terug naar boven 

Fase 2: Secure Boot Certificate Update Orchestration Scripts

Belangrijk: Zorg ervoor dat Fase1 is voltooid, inclusief het verzamelen van gegevens op elk eindpunt naar externe servershares.

In deze sectie

Scripts die nodig zijn voor fase 2

Voorbeeld van scripts voor het verzamelen van inventarisgegevens voor beveiligd opstarten

Voorbeeldscriptnaam

Purpose 

Wordt uitgevoerd op 

Voorbeeldscript voor Detect-SecureBootCertUpdateStatus.ps1  

Verzamelt apparaatstatusgegevens 

Elk eindpunt (via groepsbeleidsobject) 

Voorbeeldscript voor Aggregate-SecureBootData.ps1

Rapporten en dashboards genereren 

Beheer werkstation 

Voorbeeldscript voor Deploy-GPO-SecureBootCollection.ps1

Automatiseert het maken van groepsbeleidsobjecten voor gegevensverzameling 

Domeincontroller 

Voorbeeldscript voor Start-SecureBootRolloutOrchestrator.ps1

Volledig geautomatiseerde, continue indeling met geautomatiseerde GPO-implementatie voor certificaatinstallatie

Beheer werkstation 

Voorbeeldscript voor Deploy-OrchestratorTask.ps1

Orchestrator-script implementeren als geplande taak voor geautomatiseerde implementatie

Domeincontroller

Voorbeeldscript voor Get-SecureBootRolloutStatus.ps1

Status van secure boot-certificaatuitrol weergeven vanaf elk werkstation

Beheer-werkstation

Voorbeeldscript voor Enable-SecureBootUpdateTask.ps1

 Hiermee schakelt u Updatetaak voor beveiligd opstarten in

Op eindpunten waar de taak is uitgeschakeld (voer slechts één keer uit om de taak in te schakelen als deze is uitgeschakeld)

terug naar Fase 2: Secure Boot Certificate Update Orchestration Scripts 

Start-SecureBootRolloutOrchestrator.ps1

  • Purpose: Volledig geautomatiseerde, continue indeling met geautomatiseerde GPO-implementatie.

  • Wat gebeurt er

    • Roept Aggregate-SecureBootData.ps1 aan voor apparaatstatus

    • Genereert implementatiegolven met behulp van progressieve verdubbeling

    • Maakt GPO voor certificaatimplementatie met behulp van een van de volgende methoden

      • Groepsbeleid voor beveiligd opstarten AvailableUpdatesPolicy = 0x5944 (standaard)

      • WinCS-methode (parameter – UseWinCS)

    • Maakt AD-beveiligingsgroepen voor targeting

    • Computeraccounts toevoegen aan beveiligingsgroepen

    • Beveiligingsfilters voor groepsbeleidsobjecten configureren

    • Groepsbeleidsobject koppelen aan doel-OE

    • Monitors voor geblokkeerde buckets (onbereikbare apparaten)

    • Blokkeringen automatisch opheffen wanneer apparaten worden hersteld

  • Gebruik

    # 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

  • opdrachten Beheer

    # 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

  • Parameters

    Parameter

    Standaard

    Beschrijving

    AggregationInputPath

    Vereist

    UNC-pad naar JSON-eindpuntbestanden

    ReportBasePath

    Vereist

    Lokaal pad voor rapporten en status

    TargetOU

    Domeinhoofdmap

    OE om GPO's te koppelen

    WavePrefix

    SecureBoot-Rollout

    GPO/groepsnaamvoorvoegsel

    MaxWaitHours

    72

    Uren voordat de bereikbaarheid van het apparaat wordt gecontroleerd

    PollIntervalMinutes

    1440

    Minuten tussen statuscontroles

    DryRun

    False

    Laten zien wat er zou gebeuren zonder wijzigingen

terug naar Fase 2: Secure Boot Certificate Update Orchestration Scripts  

Deploy-OrchestratorTask.ps1

  • Purpose: Implementeert de orchestrator als een geplande Windows-taak.

  • Voordelen

    • Geen PowerShell-beveiligingsprompts (ExecutionPolicy Bypass)

    • Wordt continu op de achtergrond uitgevoerd

    • Geen gebruikersinteractie vereist

    • Overleeft opnieuw opstarten

  • Gebruik

    • Implementeren met domeinserviceaccount (aanbevolen)

      • AvailableUpdates groepsbeleid gebruiken (standaardmethode)

        .\Deploy-OrchestratorTask.ps1'     -AggregationInputPath "\\server\SecureBootData$" '     -ReportBasePath "C:\SecureBootReports" '     -ServiceAccount "DOMAIN\svc_secureboot"

      • WinCS-methode gebruiken

        .\Deploy-OrchestratorTask.ps1'     -AggregationInputPath "\\server\SecureBootData$" '     -ReportBasePath "C:\SecureBootReports" '     -ServiceAccount "DOMAIN\svc_secureboot" -UseWinCS

    • Implementeren met SYSTEM-account

      • AvailableUpdates groepsbeleid gebruiken (standaardmethode)

        .\Deploy-OrchestratorTask.ps1'     -AggregationInputPath "\\server\SecureBootData$" '     -ReportBasePath "C:\SecureBootReports"

      • WinCS-method.\Deploy-OrchestratorTask.ps1 gebruiken

            -AggregationInputPath "\\server\SecureBootData$" '     -ReportBasePath "C:\SecureBootReports" -UseWinCS

      • Vereisten voor serviceaccounts

        • Domain Beheer (voor New-GPO, New-ADGroup, Add-ADGroupMember)

        • Leestoegang tot JSON-bestandsshare

        • Schrijftoegang tot ReportBasePath

terug naar Fase 2: Secure Boot Certificate Update Orchestration Scripts  

Get-SecureBootRolloutStatus.ps1

  • Purpose: Bekijk de voortgang van de implementatie vanaf elk werkstation.

  • Wat het laat zien

    • Geplande taakstatus (uitgevoerd/gereed/gestopt)

    • Huidig golfnummer

    • Apparaten die zijn gericht versus bijgewerkt

    • Voortgangsbalk van visual

    • Samenvatting van geblokkeerde buckets

    • Koppeling naar meest recente HTML-dashboard

  • Gebruik

    # 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

  • Voorbeelduitvoer

    ==============================================================    IMPLEMENTATIESTATUS VAN BEVEILIGD OPSTARTEN    17-02-2026 19:30:00 ======================================================

    Scheduled Task: Running

    ROLLOUT PROGRESS ---------------------------------------- Status: InProgress Huidige golf: 5 Totaal doel: 1250 Totaal bijgewerkt: 847

    Progress: [█████████████████████░░░░░░░░░░░░░░░░░░░] 67.8%

    BLOCKED BUCKETS: 2 buckets need attention   Uitvoeren met -ShowBlocked voor meer informatie

    LATEST DASHBOARD C:\SecureBootReports\Aggregation_20260217_193000\SecureBoot_Dashboard.html __________________________________________________________________________________________

terug naar Fase 2: Secure Boot Certificate Update Orchestration Scripts

Terug naar boven 

E2E-implementatiestappen (snelzoekgids)

In deze sectie

Fase 1: Detectie-infrastructuur

  • Stap 1: Verzamelingsshare maken

    # 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

  • Stap 2: Detectie-GPO implementeren

    .\Deploy-GPO-SecureBootCollection.ps1 `     -DomainName "contoso.com" '     -OUPath "OU=Workstations,DC=contoso,DC=com" '     -CollectionSharePath "\\server\SecureBootData$"

  • Stap 3: Wacht tot eindpunten worden gemeld (24-48 uur)

    # De voortgang van de verzameling controleren (Get-ChildItem "\\server\SecureBootData$" -Filter "*.json"). Tellen

terug naar 'E2E-implementatiestappen (snelzoekgids)' 

Fase 2: Ingedeelde implementatie

  • Stap 4: Controle van vereisten

    • Detectie-GPO geïmplementeerd (stap 2)

    • Ten minste 50+ eindpunten die JSON rapporteren

    • Serviceaccount met domeinrechten Beheer

    • Beheerserver met PowerShell 5.1+

  • Stap 5: Orchestrator implementeren als geplande taak

    .\Deploy-OrchestratorTask.ps1 `     -AggregationInputPath "\\server\SecureBootData$" '     -ReportBasePath "C:\SecureBootReports" '     -ServiceAccount "DOMAIN\svc_secureboot"

  • Stap 6: Voortgang bewaken

    .\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports"

  • Stap 7: Dashboard weergeven

    .\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports" -OpenDashboard

  • Stap 8: Geblokkeerde buckets beheren

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

    # Investigate and unblock .\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -UnblockBucket "Manufacturer|Model |BIOS"

  • Stap 9: Voltooiing controleren

    .\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports" # Status moet 'Voltooid' weergeven

terug naar 'E2E-implementatiestappen (snelzoekgids)'  

Status Files

De orchestrator behoudt de status in ReportBasePath\RolloutState\:

Bestand

Beschrijving

RolloutState.json

Golfgeschiedenis, doelapparaten, status

BlockedBuckets.json

Buckets die moeten worden onderzocht

DeviceHistory.json

Apparaattracering op hostnaam

Orchestrator_YYYYMMDD.log

Dagelijkse activiteitenlogboeken

terug naar 'E2E-implementatiestappen (snelzoekgids)' 

Terug naar boven 

Probleemoplossing

In deze sectie

Orchestrator maakt geen voortgang

  1. Geplande taak controleren

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

  2. Logboeken controleren

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

  3. Controleer de vernieuwing van JSON-gegevens

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

terug naar 'Probleemoplossing' 

Geblokkeerde buckets

  1. Lijst geblokkeerd.

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

  2. De bereikbaarheid van apparaten onderzoeken.

  3. Controleer op firmwareproblemen.

  4. Deblokkeren na onderzoek.

terug naar 'Probleemoplossing'  

Groepsbeleidsobject wordt niet toegepast

  1. Controleer of het groepsbeleidsobject bestaat.

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

  2. Controleer beveiligingsfilters.

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

  3. Controleer of de computer zich in de beveiligingsgroep bevindt.

  4. Pas het groepsbeleidsobject toe op het doel.

    gpupdate /force

terug naar 'Probleemoplossing'

Terug naar boven 

Meer hulp nodig?

Meer opties?

Verken abonnementsvoordelen, blader door trainingscursussen, leer hoe u uw apparaat kunt beveiligen en meer.