Beispielleitfaden für die E2E-Automatisierung für den sicheren Start
Gilt für
Ursprüngliches Veröffentlichungsdatum: 16. März 2026Letzte Aktualisierung: 3. April 2026KB-ID: 5084567
In diesem Artikel
Übersicht
In diesem Leitfaden wird das automatisierte Bereitstellungssystem für Windows Secure Boot DB-Zertifikatupdates mit Gruppenrichtlinie und progressiven Rolloutwellen beschrieben.
Die Rolloutautomatisierung für sichere Startzertifikate ist ein PowerShell-basiertes System, das Windows Secure Boot DB-Zertifikatupdates auf in die Domäne eingebundene Computer auf kontrollierte, abgestufte Weise bereitstellt.
Wichtige Features
|
Feature |
Beschreibung |
|
Gestaffelter Rollout |
1 > 2 > 4 > 8... Geräte pro Bucket |
|
Automatische Blockierung |
Buckets mit nicht erreichbaren Geräten sind ausgeschlossen. |
|
Automatisierte GPO-Bereitstellung |
Ein einzelnes Orchestratorskript verarbeitet alles |
|
Geplante Aufgabenausführung |
Keine interaktiven Eingabeaufforderungen erforderlich |
|
Echtzeitüberwachung |
Statusanzeige mit Statusanzeige |
Referenz zu Zertifikateinstellungen Updates
In diesem Abschnitt
AvailableUpdatesPolicy-Gruppenrichtlinie
|
Registrierungspfad |
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecureBoot |
|
Name |
AvailableUpdatesPolicy |
|
Wert |
0x5944 (DWORD) |
Dies ist der GPO/ADMX-gesteuerte Schlüssel, der:
-
Wird über Neustarts hinweg beibehalten
-
Wird durch Gruppenrichtlinie/MDM festgelegt.
-
Verursacht keine Wiederholungsschleifen (wird über ClearRolloutFlags gelöscht)
-
Ist der richtige Schlüssel für die richtliniengesteuerte Bereitstellung
WinCSFlags – Windows Configuration System Flags
Domänenadministratoren können alternativ das Windows-Konfigurationssystem (WinCS) verwenden, das mit Windows-Betriebssystemupdates veröffentlicht wurde, um die Updates für den sicheren Start auf allen in die Domäne eingebundenen Windows-Clients und -Servern bereitzustellen. Es besteht aus einem Befehlszeilenschnittstellen-Hilfsprogramm (CLI) zum lokalen Abfragen und Anwenden von Konfigurationen für den sicheren Start auf einem Computer.
|
Featurename |
WinCS-Taste |
Beschreibung |
|
Feature_AllKeysAndBootMgrByWinCS |
F33E0C8E002 |
Die Aktivierung dieses Schlüssels ermöglicht die Installation der folgenden von Microsoft bereitgestellten neuen Zertifikate für den sicheren Start auf Ihrem Gerät.
|
Referenz: Windows Configuration System (WinCS)-APIs für den sicheren Start
Architektur
Phase 1: Erkennung und Statusüberwachung auf Unternehmensebene
In diesem Abschnitt
Für Phase 1 erforderliche Skripts
Beispielskripts für die Sammlung von Daten für den sicheren Startbestand
|
Beispielskriptname |
Funktion |
Wird ausgeführt auf |
|
Erfasst Gerätedaten status |
Jeder Endpunkt (über GPO) |
|
|
Generiert Berichte und Dashboards |
Admin Arbeitsstation |
|
|
Automatisieren der Erstellung von Gruppenrichtlinienobjekten für die Datensammlung |
Domänencontroller |
zurück zu "Phase 1: Erkennung und Statusüberwachung auf Unternehmensebene"
Lokale Tests
Testen Sie vor der Bereitstellung über GPO das Sammlungsskript auf einem einzelnen Computer, um die Funktionalität zu überprüfen.
-
Lokales Ausführen des Sammlungsskripts Öffnen Sie eine PowerShell-Eingabeaufforderung mit erhöhten Rechten, und führen Sie Folgendes aus:
& .\Detect-SecureBootCertUpdateStatus.ps1 -OutputPath "C:\Temp\SecureBootTest"
-
Überprüfen der JSON-Ausgabe
# View the collected data Get-Content "C:\Temp\SecureBootTest\*_latest.json" | ConvertFrom-Json | Format-List
Zu überprüfende Schlüsselfelder • SecureBootEnabled – Sollte "True" oder "False" sein. • OverallStatus – Complete, ReadyForUpdate, NeedsData oder Error • BucketHash – Gerätebucket für Konfidenzdatenabgleich • SecureBootTaskEnabled: Zeigt status des Updatetasks für sicheren Start an.
-
Aggregationsskript testen
# Generate reports from collected data & ".\Aggregate-SecureBootData.ps1" ' -InputPath "C:\Temp\SecureBootTest" ' -OutputPath "C:\Temp\SecureBootReports" # Html-Dashboard öffnen Start-Process "C:\Temp\SecureBootReports\SecureBoot_Dashboard_*.html"
zurück zu "Phase 1: Erkennung und Statusüberwachung auf Unternehmensebene"
GPO-Bereitstellung
Verwenden Sie das von einem Domänencontroller bereitgestellte Automatisierungsskript:
# Führen Sie auf dem Domänencontroller als Admin für interaktive Organisationseinheiten aus – Empfohlen # Ersetzen Sie "Contoso.com", "Contoso" durch den Namen der Domäne. # Ersetzen Sie FILESERVER durch den Namen des Dateiservers. Skript zeigt eine Liste der Organisationseinheiten an, auf denen GPO bereitgestellt werden soll. .\Deploy-GPO-SecureBootCollection.ps1 ' -DomainName "contoso.com" ' -AutoDetectOU ' -CollectionSharePath "\\FILESERVER\SecureBootData$" -ScriptSourcePath ".\Detect-SecureBootCertUpdateStatus.ps1" ' -Schedule "Daily" ' -ScheduleTime "14:00" ' -RandomDelayHours 4
Dieses Skript führt Folgendes aus:
-
Erstellt ein neues Gruppenrichtlinienobjekt mit dem angegebenen Namen.
-
Kopiert das Sammlungsskript in SYSVOL, um Hochverfügbarkeit zu erzielen.
-
Konfiguriert das Computerstartskript
-
Verknüpft GPO mit Ziel-ORGANISATIONSeinheit
-
Erstellt optional einen geplanten Task für die regelmäßige Sammlung.
Die folgende Tabelle enthält Eine Anleitung dazu, wie lange die Verzögerung auf Ihrer Flottengröße basiert.
|
Flottengröße |
Verzögerungsbereich |
|
1-10.000 Geräte |
4 Stunden |
|
10K-50K-Geräte |
8 Stunden |
|
Mehr als 50.000 Geräte |
12-24 Stunden |
zurück zu "Phase 1: Erkennung und Statusüberwachung auf Unternehmensebene"
Zusammenfassung der GPO-Einstellungen
|
Setting |
Standort |
Wert |
|
Startskript |
Computerkonfiguration → Skripts |
Detect-SecureBootCertUpdateStatus.ps1 |
|
Skriptparameter |
(identisch) |
-OutputPath "\\server\share$" |
|
Ausführungsrichtlinie |
Computerkonfiguration → Admin Vorlagen → PowerShell |
Lokal und remote signiert zulassen |
|
Geplante Aufgabe |
Computerkonfiguration → Einstellungen → Geplante Aufgaben |
Tägliche/wöchentliche Sammlung |
zurück zu "Phase 1: Erkennung und Statusüberwachung auf Unternehmensebene"
Überprüfungs-
-
Erzwingen der Aktualisierung des Gruppenrichtlinienobjekts bei Test Machine
## On a test workstation gpupdate /force # Starten Sie die Clientcomputer neu, um das Skript zu starten, oder es wird nach dem nächsten Zeitplan ausgelöst. Restart-Computer -Force
-
Überprüfen der Datensammlung
# Überprüfen, ob Daten gesammelt wurden (auf dem Dateiserver oder von einem beliebigen Computer) Get-ChildItem "\\fileserver\SecureBootData$" | Sort-Object LastWriteTime -Descending | Select-Object –Erste 10 # Überprüfen des JSON-Inhalts Get-Content "\\fileserver\SecureBootData$\TESTPC_latest.json" | ConvertFrom-Json
-
Überprüfen der GPO-Anwendung
# Überprüfen, ob das Gruppenrichtlinienobjekt auf den Computer angewendet wird Select-String "SecureBoot" Das Skript speichert aus Gründen der Redundanz auch eine lokale Kopie: Get-ChildItem "C:\ProgramData\SecureBootCollection\"
zurück zu "Phase 1: Erkennung und Statusüberwachung auf Unternehmensebene"
Phase 2: Skripts zur Orchestrierung von Zertifikatupdates für den sicheren Start
Wichtig: Stellen Sie sicher, dass Phase 1 abgeschlossen ist, einschließlich der Datensammlung für jeden Endpunkt für Remoteserverfreigaben.
In diesem Abschnitt
Für Phase 2 erforderliche Skripts
Beispielskripts für die Sammlung von Daten für den sicheren Startbestand
|
Beispielskriptname |
Funktion |
Läuft auf |
|
Erfasst Gerätedaten status |
Jeder Endpunkt (über GPO) |
|
|
Generiert Berichte und Dashboards |
Admin Arbeitsstation |
|
|
Automatisieren der Erstellung von Gruppenrichtlinienobjekten für die Datensammlung |
Domänencontroller |
|
|
Vollständig automatisierte, kontinuierliche Orchestrierung mit automatisierter GPO-Bereitstellung für die Zertifikatinstallation |
Admin Arbeitsstation |
|
|
Stellt ein Orchestrator-Skript als geplante Aufgabe für den automatisierten Rollout bereit. |
Domänencontroller |
|
|
Anzeigen des rollout-status des Zertifikats für den sicheren Start von einer beliebigen Arbeitsstation |
Admin Workstation |
|
|
Aktiviert den Task "Update für sicheren Start" |
An Endpunkten, an denen die Aufgabe deaktiviert ist (Nur einmal ausführen, um die Aufgabe zu aktivieren, falls deaktiviert) |
zurück zu "Phase 2: Secure Boot Certificate Update Orchestration Scripts"
Start-SecureBootRolloutOrchestrator.ps1
-
Zweck: Vollständig automatisierte, kontinuierliche Orchestrierung mit automatisierter GPO-Bereitstellung.
-
Funktion
-
Aufrufe Aggregate-SecureBootData.ps1 für geräte status
-
Generiert Rolloutwellen mit progressiver Verdoppelung
-
Erstellen eines Gruppenrichtlinienobjekts für die Zertifikatbereitstellung mithilfe einer der folgenden Methoden
-
Sicherer Start Gruppenrichtlinie AvailableUpdatesPolicy = 0x5944 (Standard)
-
WinCS-Methode (Parameter –UseWinCS)
-
-
Erstellt AD-Sicherheitsgruppen für die Zielgruppenadressierung
-
Hinzufügen von Computerkonten zu Sicherheitsgruppen
-
Konfiguriert die GPO-Sicherheitsfilterung.
-
Verknüpft GPO mit Ziel-ORGANISATIONSeinheit
-
Monitore für blockierte Buckets (nicht erreichbare Geräte)
-
Automatisches Aufheben der Blockierung bei der Wiederherstellung von Geräten
-
-
Verwendung
# 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 30 ' -UseWinCS
-
Admin-Befehle
# 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
-
verwalten
Parameter
Standard
Beschreibung
AggregationInputPath
Required
UNC-Pfad zu JSON-Endpunktdateien
ReportBasePath
Required
Lokaler Pfad für Berichte und Status
TargetOU
Domänenstamm
Organisationseinheit zum Verknüpfen von Gruppenrichtlinienobjekten
WavePrefix
SecureBoot-Rollout
Präfix für GPO/Gruppenbenennung
MaxWaitHours
72
Stunden vor der Überprüfung der Gerätereichbarkeit
PollIntervalMinutes
1440
Minuten zwischen status Überprüfungen
DryRun
FALSE
Anzeigen, was ohne Änderungen geschehen würde
Hinweis zu PollIntervalMinutes: Wenn der Orchestrator direkt ausgeführt wird, beträgt der Standardwert 1440 Minuten (24 Stunden). Bei der Bereitstellung über Deploy-OrchestratorTask.ps1 beträgt die Standardeinstellung 30 Minuten. Das Bereitstellungsskript übergibt einen eigenen Standardwert an den Orchestrator. Verwenden Sie 30 Minuten für den aktiven Rollout, 1440 für die Wartungsüberwachung.
Optionale Parameter
Parameter
Standard
Beschreibung
UseWinCS
FALSE
Verwenden der WinCS-Methode anstelle des AvailableUpdatesPolicy-GPO
WinCSKey
F33E0C8E002
WinCS-Schlüssel für die Konfiguration des sicheren Starts
AllowListPath
(keine)
Pfad zur Datei mit Hostnamen zu ALLOW für den gezielten/Pilotrollout. Unterstützt .txt oder .csv.
AllowADGroup
(keine)
AD-Sicherheitsgruppe von Computerkonten, die zugelassen werden sollen. Beispiel: "SecureBoot-Pilot-Computers"
ExclusionListPath
(keine)
Pfad zur Datei mit Hostnamen, die vom Rollout ausgeschlossen werden sollen (VIP/Executive-Geräte)
ExcludeADGroup
(keine)
AD-Sicherheitsgruppe von auszuschließenden Computerkonten. Beispiel: "VIP-Computer"
ListBlockedBuckets
FALSE
Anzeigen aktuell blockierter Gerätebuckets
UnblockBucket
(keine)
Heben Sie die Blockierung eines bestimmten Buckets auf. Format: "Hersteller|Modell|BIOS"
UnblockAll
FALSE
Aufheben der Blockierung aller blockierten Gerätebuckets
zurück zu "Phase 2: Secure Boot Certificate Update Orchestration Scripts"
Deploy-OrchestratorTask.ps1
-
Zweck: Stellt den Orchestrator als geplanten Windows-Task bereit.
-
Vergütungen
-
Keine PowerShell-Sicherheitsaufforderungen (ExecutionPolicy Bypass)
-
Fortlaufende Ausführung im Hintergrund
-
Keine Benutzerinteraktion erforderlich
-
Übersteht Neustarts
-
-
Verwendung
-
Bereitstellen mit Domänendienstkonto (empfohlen)
-
Verwenden von AvailableUpdates Gruppenrichtlinie (Standardmethode)
.\Deploy-OrchestratorTask.ps1 ' -AggregationInputPath "\\server\SecureBootData$" ' -ReportBasePath "C:\SecureBootReports" ' -ServiceAccount "DOMAIN\svc_secureboot"
-
Verwenden der WinCS-Methode
.\Deploy-OrchestratorTask.ps1 ' -AggregationInputPath "\\server\SecureBootData$" ' -ReportBasePath "C:\SecureBootReports" ' -ServiceAccount "DOMAIN\svc_secureboot" -UseWinCS
-
-
Bereitstellen mit dem SYSTEM-Konto
-
Verwenden von AvailableUpdates Gruppenrichtlinie (Standardmethode)
.\Deploy-OrchestratorTask.ps1 ' -AggregationInputPath "\\server\SecureBootData$" ' -ReportBasePath "C:\SecureBootReports"
-
Verwenden von WinCS method.\Deploy-OrchestratorTask.ps1
-AggregationInputPath "\\server\SecureBootData$" ' -ReportBasePath "C:\SecureBootReports" -UseWinCS
-
Dienstkontoanforderungen
-
Domänen-Admin (für New-GPO, New-ADGroup, Add-ADGroupMember)
-
Lesezugriff auf die JSON-Dateifreigabe
-
Schreibzugriff auf ReportBasePath
-
-
-
zurück zu "Phase 2: Secure Boot Certificate Update Orchestration Scripts"
Get-SecureBootRolloutStatus.ps1
-
Zweck: Anzeigen des Rolloutfortschritts von einer beliebigen Arbeitsstation aus.
-
Was es zeigt
-
Status der geplanten Aufgabe (Wird ausgeführt/Bereit/Beendet)
-
Aktuelle Wellennummer
-
Zielgeräte im Vergleich zu aktualisierten Geräten
-
Visuelle Statusanzeige
-
Zusammenfassung blockierter Buckets
-
Link zu den neuesten HTML-Dashboard
-
-
Verwendung
# 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
-
verwalten
Parameter
Erforderlich?
Standard
Beschreibung
ReportBasePath
Required
—
Lokaler Pfad zu Berichten und Zustandsdateien
ShowLog
Optionale
FALSE
Anzeigen der letzten Orchestratorprotokolleinträge
ShowBlocked
Optionale
FALSE
Anzeigen von Details zu blockierten Buckets
ShowWaves
Optionale
FALSE
Wellenverlauf anzeigen
Ansehen
Optionale
0 (deaktiviert)
Intervall für automatische Aktualisierung in Sekunden. Beispiel: -Watch 30 aktualisiert alle 30 Sekunden.
OpenDashboard
Optionale
FALSE
Öffnen Sie die neueste HTML-Dashboard im Standardbrowser.
-
Beispielausgabe
============================================================== ROLLOUTSTATUS DES SICHEREN STARTS 17.02.2026 19:30:00 Uhr ======================================================
Scheduled Task: Running
ROLLOUT PROGRESS ---------------------------------------- Status: InProgress Aktuelle Welle: 5 Gesamtziel: 1250 Aktualisiert insgesamt: 847
Progress: [█████████████████████░░░░░░░░░░░░░░░░░░░] 67.8%
BLOCKED BUCKETS: 2 buckets need attention Ausführen mit -ShowBlocked für Details
LATEST DASHBOARD C:\SecureBootReports\Aggregation_20260217_193000\SecureBoot_Dashboard.html __________________________________________________________________________________________
zurück zu "Phase 2: Secure Boot Certificate Update Orchestration Scripts"
E2E-Bereitstellungsschritte (Kurzübersicht)
In diesem Abschnitt
Phase 1: Erkennungsinfrastruktur
-
Schritt 1: Erstellen einer Sammlungsfreigabe
# On file server $sharePath = "D:\SecureBootData" New-Item -ItemType Directory -Path $sharePath -Force New-SmbShare -Name "SecureBootData$" -Path $sharePath -FullAccess "Domänenadministratoren" -ChangeAccess "Domänencomputer"
# Set NTFS permissions $acl = Get-Acl $sharePath $rule = New-Object System.Security.AccessControl.FileSystemAccessRule("Domänencomputer";"Modify";"Allow") $acl. AddAccessRule($rule) Set-Acl $sharePath $acl
-
Schritt 2: Bereitstellen des Erkennungs-GPO
.\Deploy-GPO-SecureBootCollection.ps1 ` -DomainName "contoso.com" ' -OUPath "OU=Workstations,DC=contoso,DC=com" ' -CollectionSharePath "\\server\SecureBootData$"
-
Schritt 3: Warten auf zu meldende Endpunkte (24-48 Stunden)
# Überprüfen des Sammlungsfortschritts (Get-ChildItem "\\server\SecureBootData$" -Filter "*.json"). Count
zurück zu "E2E-Bereitstellungsschritte (Kurzübersichtshandbuch)"
Phase 2: Orchestrierter Rollout
-
Schritt 4: Voraussetzungsprüfung
-
Bereitstellung des Erkennungs-GPO (Schritt 2)
-
Mindestens 50+ Endpunkte, die JSON melden
-
Dienstkonto mit Domänen-Admin-Rechten
-
Verwaltungsserver mit PowerShell 5.1 und höher
-
-
Schritt 5: Bereitstellen von Orchestrator als geplante Aufgabe
.\Deploy-OrchestratorTask.ps1 ` -AggregationInputPath "\\server\SecureBootData$" ' -ReportBasePath "C:\SecureBootReports" ' -ServiceAccount "DOMAIN\svc_secureboot"
-
Schritt 6: Überwachen des Status
.\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports"
-
Schritt 7: Dashboard anzeigen
.\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports" -OpenDashboard
-
Schritt 8: Verwalten blockierter Buckets
# List blocked .\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -ListBlockedBuckets
# Investigate and unblock .\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -UnblockBucket "Manufacturer|Modell|BIOS"
-
Schritt 9: Überprüfen des Abschlusses
.\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports" Der #-Status sollte "Abgeschlossen" anzeigen.
zurück zu "E2E-Bereitstellungsschritte (Kurzübersichtshandbuch)"
Files
Der Orchestrator verwaltet den Zustand in ReportBasePath\RolloutState\:
|
File |
Beschreibung |
|
RolloutState.json |
Wellenverlauf, Zielgeräte, status |
|
BlockedBuckets.json |
Buckets, die untersucht werden müssen |
|
DeviceHistory.json |
Gerätenachverfolgung nach Hostnamen |
|
Orchestrator_YYYYMMDD.log |
Tägliche Aktivitätsprotokolle |
zurück zu "E2E-Bereitstellungsschritte (Kurzübersichtshandbuch)"
Problembehandlung
In diesem Abschnitt
Orchestrator wird nicht ausgeführt
-
Überprüfen der geplanten Aufgabe
Get-ScheduledTask -TaskName "SecureBoot-Rollout-Orchestrator"
-
Protokolle überprüfen
Get-Content "C:\SecureBootReports\RolloutState\Orchestrator_*.log" -Tail 50
-
Überprüfen der Aktualität von JSON-Daten
(Get-ChildItem "\\server\SecureBootData$" -Filter "*.json" | Where-Object { $_.LastWriteTime -gt (Get-Date).AddDays(-1) }).Count
Blockierte Buckets
-
Liste blockiert.
.\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -ListBlockedBuckets
-
Untersuchen sie die Gerätereichbarkeit.
-
Suchen Sie nach Firmwareproblemen.
-
Heben Sie die Blockierung nach der Untersuchung auf.
GPO wird nicht angewendet
-
Überprüfen Sie, ob das Gruppenrichtlinienobjekt vorhanden ist.
Get-GPO -Name "SecureBoot-Rollout-Wave*"
-
Überprüfen Sie die Sicherheitsfilterung.
Get-GPPermission -Name "GPO-Name" -All
-
Überprüfen Sie, ob sich der Computer in der Sicherheitsgruppe befindet.
-
Wenden Sie das Gruppenrichtlinienobjekt auf das Ziel an.
gpupdate /force