Voorbeeld van E2E Automation-handleiding voor beveiligd opstarten
Van toepassing op
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.
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 |
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.
|
Naslaginformatie: Windows Configuration System (WinCS) API's voor beveiligd opstarten
terug naar 'Referentie voor certificaatinstellingen Updates'
Architectuur
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 |
|
Verzamelt apparaatstatusgegevens |
Elk eindpunt (via groepsbeleidsobject) |
|
|
Rapporten en dashboards genereren |
Beheer werkstation |
|
|
Automatiseert het maken van groepsbeleidsobjecten voor gegevensverzameling |
Domeincontroller |
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'
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'
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 |
|
Verzamelt apparaatstatusgegevens |
Elk eindpunt (via groepsbeleidsobject) |
|
|
Rapporten en dashboards genereren |
Beheer werkstation |
|
|
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 |
|
Orchestrator-script implementeren als geplande taak voor geautomatiseerde implementatie |
Domeincontroller |
|
|
Status van secure boot-certificaatuitrol weergeven vanaf elk werkstation |
Beheer-werkstation |
|
|
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
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
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
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 |
Probleemoplossing
In deze sectie
Orchestrator maakt geen voortgang
-
Geplande taak controleren
Get-ScheduledTask -TaskName "SecureBoot-Rollout-Orchestrator"
-
Logboeken controleren
Get-Content "C:\SecureBootReports\RolloutState\Orchestrator_*.log" -Tail 50
-
Controleer de vernieuwing van JSON-gegevens
(Get-ChildItem "\\server\SecureBootData$" -Filter "*.json" | Where-Object { $_.LastWriteTime -gt (Get-Date).AddDays(-1) }).Count
Geblokkeerde buckets
-
Lijst geblokkeerd.
.\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -ListBlockedBuckets
-
De bereikbaarheid van apparaten onderzoeken.
-
Controleer op firmwareproblemen.
-
Deblokkeren na onderzoek.
Groepsbeleidsobject wordt niet toegepast
-
Controleer of het groepsbeleidsobject bestaat.
Get-GPO -Name "SecureBoot-Rollout-Wave*"
-
Controleer beveiligingsfilters.
Get-GPPermission -Name "GPO-Name" -All
-
Controleer of de computer zich in de beveiligingsgroep bevindt.
-
Pas het groepsbeleidsobject toe op het doel.
gpupdate /force