Przykładowy przewodnik automatyzacji bezpiecznego rozruchu E2E
Dotyczy
Oryginalna data publikacji: 16 marca 2026 r.
Identyfikator BAZY WIEDZY: 5084567
W tym artykule
Przegląd
W tym przewodniku opisano zautomatyzowany system wdrażania aktualizacji certyfikatów bazy danych bezpiecznego rozruchu systemu Windows przy użyciu zasady grupy i progresywnych fal wdrażania.
Automatyzacja wdrażania certyfikatów bezpiecznego rozruchu to system oparty na programie PowerShell, który wdraża aktualizacje certyfikatów bazy danych bezpiecznego rozruchu systemu Windows na komputerach przyłączonych do domeny w sposób kontrolowany i stopniowy.
Najważniejsze funkcje
|
Funkcja |
Opis |
|
Stopniowe wdrożenie |
1 > 2 > 4 > 8... urządzenia na zasobnik |
|
Automatyczne blokowanie |
Zasobniki z nieosiągalnymi urządzeniami są wykluczone |
|
Automatyczne wdrażanie obiektu zasad grupy |
Jeden skrypt aranżacji obsługuje wszystko |
|
Zaplanowane wykonanie zadania |
Nie są wymagane żadne interakcyjne monity |
|
Monitorowanie w czasie rzeczywistym |
Podgląd stanu z paskiem postępu |
Dokumentacja ustawień Aktualizacje certyfikatu
W tej sekcji
Zasady grupy AvailableUpdatesPolicy
|
Lokalizacja rejestru |
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecureBoot |
|
Nazwa |
AvailableUpdatesPolicy |
|
Wartość |
0x5944 (DWORD) |
Jest to klawisz sterowany przez gpo/ADMX, który:
-
Trwa podczas ponownych uruchomień
-
Ustawiane przez zasady grupy /MDM
-
Nie powoduje ponownych prób pętli (wyczyszczone przez ClearRolloutFlags)
-
Jest właściwym kluczem wdrażania opartego na zasadach
powrót do pozycji "Odwołanie do ustawień Aktualizacje certyfikatu"
WinCSFlags — flagi systemu konfiguracji systemu Windows
Administratorzy domeny mogą również używać systemu konfiguracji systemu Windows (WinCS) wydanego z aktualizacjami systemu operacyjnego Windows do wdrażania aktualizacji bezpiecznego rozruchu na serwerach i klientach systemu Windows przyłączonych do domeny. Składa się on z narzędzia interfejsu wiersza polecenia (CLI) do wykonywania zapytań i stosowania konfiguracji bezpiecznego rozruchu lokalnie na komputerze.
|
Nazwa funkcji |
Klucz WinCS |
Opis |
|
Feature_AllKeysAndBootMgrByWinCS |
F33E0C8E002 |
Włączenie tego klucza umożliwia zainstalowanie na urządzeniu następujących certyfikatów bezpiecznego rozruchu dostarczonych przez firmę Microsoft.
|
Informacje: Interfejsy API systemu konfiguracji systemu Windows (WinCS) do bezpiecznego rozruchu
powrót do pozycji "Odwołanie do ustawień Aktualizacje certyfikatu"
Architektura
Faza 1: Wykrywanie i monitorowanie stanu na poziomie przedsiębiorstwa
W tej sekcji
Skrypty potrzebne do fazy 1
Przykładowe skrypty zbierania danych w spisie bezpiecznego rozruchu
|
Przykładowa nazwa skryptu |
Celu |
Działa wł. |
|
Zbiera dane o stanie urządzenia |
Każdy punkt końcowy (za pośrednictwem obiektu zasad grupy) |
|
|
Generuje raporty i pulpity nawigacyjne |
stacja robocza Administracja |
|
|
Automatyzuje tworzenie obiektów zasad grupy na potrzeby zbierania danych |
Kontroler domeny |
powrót do "Faza 1: Wykrywanie i monitorowanie stanu na poziomie przedsiębiorstwa"
Testowanie lokalne
Przed wdrożeniem za pośrednictwem obiektu zasad grupy przetestuj skrypt kolekcji na jednym komputerze, aby sprawdzić funkcjonalność.
-
Uruchamianie skryptu kolekcji lokalnie Otwórz monit programu PowerShell z podwyższonym poziomem uprawnień i wykonaj:
& .\Detect-SecureBootCertUpdateStatus.ps1 -OutputPath "C:\Temp\SecureBootTest"
-
Weryfikowanie danych wyjściowych JSON
# View the collected data Get-Content "C:\Temp\SecureBootTest\*_latest.json" | ConvertFrom-Json | Format-List
Pola kluczy do zweryfikowania • SecureBootEnabled — powinna być prawda lub fałsz • GeneralStatus — Complete, ReadyForUpdate, NeedsData lub Error • BucketHash — zasobnik urządzenia umożliwiający dopasowywanie danych ufności • SecureBootTaskEnabled — pokazuje stan zadania aktualizacji bezpiecznego rozruchu.
-
Testowanie skryptu agregacji
# Generate reports from collected data & .\Aggregate-SecureBootCertStatus.ps1" -InputPath "C:\Temp\SecureBootTest" ' -OutputPath "C:\Temp\SecureBootReports" # Otwórz pulpit nawigacyjny HTML
Start-Process "C:\Temp\SecureBootReports\SecureBoot_Dashboard_*.html"
powrót do "Faza 1: Wykrywanie i monitorowanie stanu na poziomie przedsiębiorstwa"
Wdrożenie obiektu zasad grupy
Użyj skryptu automatyzacji udostępnionego z kontrolera domeny:
# Uruchom na kontrolerze domeny jako Administracja domeny dla interakcyjnej sekcji OU — zalecane # Zamień ciąg "Contoso.com", "Contoso" na nazwę domeny # Zamień program FILESERVER na nazwę serwera plików. Skrypt pokazuje listę osób, dla których ma zostać wdrożony obiekt zasad grupy .\Deploy-GPO-SecureBootCollection.ps1 ' -DomainName "contoso.com" ' -AutodetectOU ' -CollectionSharePath "\\FILESERVER\SecureBootLogs$" -ScriptSourcePath ".\Detect-SecureBootCertUpdateStatus.ps1" ' -Zaplanuj "Dzienny" ' -ScheduleTime "14:00" ' -RandomDelayHours 4
Ten skrypt wykona następujące czynności:
-
Tworzy nowy obiekt zasad grupy o określonej nazwie
-
Kopiuje skrypt kolekcji do SYSVOL w celu zapewnienia wysokiej dostępności
-
Konfiguruje skrypt uruchamiania komputera
-
Łączy obiekt zasad grupy z docelową kartą graficzną
-
Opcjonalnie tworzy zaplanowane zadanie dla kolekcji okresowej
W poniższej tabeli przedstawiono, jak długo opóźnienie będzie zależeć od rozmiaru floty.
|
Rozmiar floty |
Zakres opóźnień |
|
Urządzenia 1–10 K |
4 godziny |
|
Urządzenia 10K-50K |
8 godzin |
|
Ponad 50 000 urządzeń |
12–24 godziny |
powrót do "Faza 1: Wykrywanie i monitorowanie stanu na poziomie przedsiębiorstwa"
Podsumowanie ustawień obiektu zasad grupy
|
Ustawienie |
Lokalizacja |
Wartość |
|
Skrypt uruchamiania |
Skrypty → konfiguracji komputera |
Detect-SecureBootCertUpdateStatus.ps1 |
|
Parametry skryptu |
(to samo) |
-OutputPath "\\server\share$" |
|
Zasady wykonywania |
Szablony → Administracja konfiguracji komputera → programie PowerShell |
Zezwalaj na podpis lokalny i zdalny |
|
Zaplanowane zadanie |
Preferencje → konfiguracji komputera → zaplanowanych zadań |
Kolekcja dzienna/tygodniowa |
powrót do "Faza 1: Wykrywanie i monitorowanie stanu na poziomie przedsiębiorstwa"
Weryfikacja
-
Force GPO Update on Test Machine
## On a test workstation gpupdate /force # Uruchom ponownie komputery klienckie, aby uruchomić skrypt uruchamiania, lub uruchomi się on w następnym harmonogramie. Restart-Computer -Siła
-
Weryfikowanie zbierania danych
# Sprawdź, czy dane zostały zebrane (na serwerze plików lub z dowolnego komputera) Get-ChildItem "\\fileserver\SecureBootData$" | Sort-Object LastWriteTime -Descending | Select-Object -Pierwsze 10 # Weryfikowanie zawartości JSON Get-Content "\\fileserver\SecureBootData$\TESTPC_latest.json" | ConvertFrom-Json
-
Sprawdź aplikację obiektu zasad grupy
# Sprawdź, czy obiekt zasad grupy został zastosowany do komputera gpresult /r /scope:komputer | Select-String "SecureBoot" S Skrypt zapisuje również kopię lokalną dla nadmiarowości: Get-ChildItem "C:\ProgramData\SecureBootCollection\"
powrót do "Faza 1: Wykrywanie i monitorowanie stanu na poziomie przedsiębiorstwa"
Etap 2. Aktualizacja certyfikatu bezpiecznego rozruchu — skrypty aranżacji
Ważne: Upewnij się, że faza 1 została ukończona, w tym zbieranie danych w każdym punkcie końcowym do udziałów serwera zdalnego.
W tej sekcji
Skrypty potrzebne do fazy 2
Przykładowe skrypty zbierania danych w spisie bezpiecznego rozruchu
|
Przykładowa nazwa skryptu |
Celu |
Działa w następujących systemach |
|
Zbiera dane o stanie urządzenia |
Każdy punkt końcowy (za pośrednictwem obiektu zasad grupy) |
|
|
Generuje raporty i pulpity nawigacyjne |
stacja robocza Administracja |
|
|
Automatyzuje tworzenie obiektów zasad grupy na potrzeby zbierania danych |
Kontroler domeny |
|
|
W pełni zautomatyzowana, ciągła aranżacja z automatycznym wdrażaniem obiektu zasad grupy do instalacji certyfikatu |
stacja robocza Administracja |
|
|
Wdrażanie skryptu aranżacji jako zaplanowanego zadania w celu automatycznego wdrożenia |
Kontroler domeny |
|
|
Wyświetl stan wdrożenia certyfikatu bezpiecznego rozruchu z dowolnej stacji roboczej |
stacja robocza Administracja |
|
|
Włącza zadanie aktualizacji bezpiecznego rozruchu |
W punktach końcowych, w których zadanie jest wyłączone (uruchom tylko raz, aby włączyć zadanie, jeśli jest wyłączone) |
powrót do "Faza 2: Skrypty aranżacji aktualizacji certyfikatu bezpiecznego rozruchu"
Start-SecureBootRolloutOrchestrator.ps1
-
Celu: W pełni zautomatyzowana, ciągła aranżacja z automatycznym wdrażaniem obiektów zasad grupy.
-
Opis
-
Połączenia Aggregate-SecureBootData.ps1 w celu ustawienia stanu urządzenia
-
Generuje fale wdrażania za pomocą progresywnego podwojenia
-
Tworzy obiekt zasad grupy dla wdrożenia certyfikatów przy użyciu jednej z następujących metod
-
Zasady grupy bezpiecznego rozruchu AvailableUpdatesPolicy = 0x5944 (domyślne)
-
Metoda WinCS (Parametr — UseWinCS)
-
-
Tworzy grupy zabezpieczeń usługi AD na potrzeby kierowania
-
Dodaje konta komputerów do grup zabezpieczeń
-
Konfiguruje filtrowanie zabezpieczeń obiektu zasad grupy
-
Łączy obiekt zasad grupy z docelową kartą graficzną
-
Monitory blokowanych zasobników (nieosiągalne urządzenia)
-
Automatyczne odblokowywanie po odzyskaniu przez urządzenia
-
-
użytkowanie
# 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
-
polecenia Administracja
# List blocked buckets .\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -ListBlockedBuckets
# Unblock specific bucket .\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -UnblockBucket "Dell|Szerokość5520|BIOS1.2"
# Unblock all .\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -UnblockAll
-
Parametry
Parametr
Domyślne
Opis
AggregationInputPath
Wymagane
Ścieżka UNC do plików JSON punktu końcowego
ReportBasePath
Wymagane
Ścieżka lokalna raportów i stanu
TargetOU
Domena główna
OU do łączenia obiektów GPO
WavePrefix
SecureBoot-Rollout
Prefiks nazewnictwa obiektów gpo/grup
MaxWaitHours
72
Godziny przed sprawdzeniem przydatności urządzenia
PollIntervalMinutes
1440
Minuty między testami stanu
DryRun
False
Pokaż, co by się stało bez zmian
powrót do "Faza 2: Skrypty aranżacji aktualizacji certyfikatu bezpiecznego rozruchu"
Deploy-OrchestratorTask.ps1
-
Celu: Wdraża aranżatora jako zadanie zaplanowane w systemie Windows.
-
Korzyści
-
Brak monitów zabezpieczeń programu PowerShell (ExecutionPolicy Bypass)
-
Działa w tle w sposób ciągły
-
Interakcja z użytkownikami nie jest wymagana
-
Przetrwa ponowny rozruch
-
-
użytkowanie
-
Wdrażanie za pomocą konta usługi domeny (zalecane)
-
Użyj zasady grupy AvailableUpdates (metoda domyślna)
.\Deploy-OrchestratorTask.ps1 ' -AggregationInputPath "\\server\SecureBootData$" -ReportBasePath "C:\SecureBootReports" -ServiceAccount "DOMAIN\svc_secureboot"
-
Korzystanie z metody WinCS
.\Deploy-OrchestratorTask.ps1 ' -AggregationInputPath "\\server\SecureBootData$" -ReportBasePath "C:\SecureBootReports" -ServiceAccount "DOMAIN\svc_secureboot" -UseWinCS
-
-
Wdrażanie za pomocą konta SYSTEM
-
Użyj zasady grupy AvailableUpdates (metoda domyślna)
.\Deploy-OrchestratorTask.ps1 ' -AggregationInputPath "\\server\SecureBootData$" -ReportBasePath "C:\SecureBootReports"
-
Korzystanie z method.\Deploy-OrchestratorTask.ps1 WinCS
-AggregationInputPath "\\server\SecureBootData$" -ReportBasePath "C:\SecureBootReports" —UseWinCS
-
Wymagania dotyczące konta usługi
-
Administracja domeny (dla obiektów New-GPO, New-ADGroup, Add-ADGroupMember)
-
Odczyt dostępu do udziału plików JSON
-
Dostęp do zapisu w programie ReportBasePath
-
-
-
powrót do "Faza 2: Skrypty aranżacji aktualizacji certyfikatu bezpiecznego rozruchu"
Get-SecureBootRolloutStatus.ps1
-
Celu: Wyświetl postęp wdrażania z dowolnej stacji roboczej.
-
Co jest wyświetlane
-
Stan zaplanowanego zadania (uruchomiony/gotowy/zatrzymany)
-
Numer bieżącego etapu
-
Urządzenia kierowane a zaktualizowane
-
Wizualny pasek postępu
-
Podsumowanie blokowanych zasobników
-
Link do najnowszego pulpitu nawigacyjnego HTML
-
-
użytkowanie
# 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
-
Przykładowe dane wyjściowe
============================================================== STAN WDROŻENIA BEZPIECZNEGO ROZRUCHU 2026-02-17 19:30:00 ======================================================
Scheduled Task: Running
ROLLOUT PROGRESS ---------------------------------------- Stan: InProgress Bieżąca fala: 5 Łączna liczba kierowanych: 1250 Całkowita aktualizacja: 847
Progress: [█████████████████████░░░░░░░░░░░░░░░░░░░] 67.8%
BLOCKED BUCKETS: 2 buckets need attention Uruchom za pomocą polecenia -ShowBlocked, aby uzyskać szczegółowe informacje
LATEST DASHBOARD C:\SecureBootReports\Aggregation_20260217_193000\SecureBoot_Dashboard.html __________________________________________________________________________________________
powrót do "Faza 2: Skrypty aranżacji aktualizacji certyfikatu bezpiecznego rozruchu"
Kroki wdrażania E2E (krótki przewodnik)
W tej sekcji
Faza 1: Infrastruktura wykrywania
-
Krok 1. Tworzenie udziału kolekcji
# 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
-
Krok 2. Wdrażanie obiektu zasad grupy wykrywania
.\Deploy-GPO-SecureBootCollection.ps1 ` -DomainName "contoso.com" ' -OUPath "OU=Workstations,DC=contoso,DC=com" ' -CollectionSharePath "\\server\SecureBootData$"
-
Krok 3. Oczekiwanie na raportowanie punktów końcowych (24–48 godzin)
# Sprawdź postęp kolekcji (Get-ChildItem "\\server\SecureBootData$" -Filter "*.json"). Liczba
Faza 2. Wdrożenie zaaranżowane
-
Krok 4. Sprawdzanie wymagań wstępnych
-
Wdrożono obiekt zasad grupy wykrywania (krok 2)
-
Co najmniej 50+ punktów końcowych raportowania JSON
-
Konto usługi z prawami Administracja domeny
-
Serwer zarządzania z programem PowerShell 5.1+
-
-
Krok 5. Wdrażanie aranżacji jako zaplanowanego zadania
.\Deploy-OrchestratorTask.ps1 ` -AggregationInputPath "\\server\SecureBootData$" -ReportBasePath "C:\SecureBootReports" -ServiceAccount "DOMAIN\svc_secureboot"
-
Krok 6. Monitorowanie postępu
.\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports"
-
Krok 7. Wyświetlanie pulpitu nawigacyjnego
.\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports" -OpenDashboard
-
Krok 8. Zarządzanie zablokowanymi zasobnikami
# List blocked .\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -ListBlockedBuckets
# Investigate and unblock .\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -UnblockBucket "Producent|Model|BIOS"
-
Krok 9. Weryfikacja ukończenia
.\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports" # Stan powinien zawierać komunikat "Ukończono"
Files województwo
Aranżator zachowuje stan w ReportBasePath\RolloutState\:
|
Plik |
Opis |
|
RolloutState.json |
Historia fal, urządzenia kierowane, stan |
|
BlockedBuckets.json |
Zasobniki wymagające badania |
|
DeviceHistory.json |
Śledzenie urządzeń według nazwy hosta |
|
Orchestrator_YYYYMMDD.log |
Dzienniki codziennej aktywności |
Rozwiązywanie problemów
W tej sekcji
Aranżator nie rozwija się
-
Sprawdzanie zaplanowanego zadania
Get-ScheduledTask -TaskName "SecureBoot-Rollout-Orchestrator"
-
Sprawdzanie dzienników
Get-Content "C:\SecureBootReports\RolloutState\Orchestrator_*.log" -Tail 50
-
Sprawdzanie świeżości danych JSON
(Get-ChildItem "\\server\SecureBootData$" -Filter "*.json" | Where-Object { $_.LastWriteTime -gt (Get-Date).AddDays(-1) }).Count
Zablokowane zasobniki
-
Lista jest zablokowana.
.\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -ListBlockedBuckets
-
Sprawdź osiągalność urządzenia.
-
Sprawdź, czy nie ma problemów z oprogramowaniem układowym.
-
Odblokuj po zbadaniu.
Obiekt zasad grupy nie stosuje się
-
Sprawdź, czy obiekt zasad grupy istnieje.
Get-GPO -Name "SecureBoot-Rollout-Wave*"
-
Sprawdź filtrowanie zabezpieczeń.
Get-GPPermission -Name "GPO-Name" -All
-
Sprawdź, czy komputer jest w grupie zabezpieczeń.
-
Zastosuj obiekt zasad grupy do obiektu docelowego.
gpupdate /force