Contoh Panduan Otomatisasi E2E Boot Aman
Berlaku Untuk
Tanggal penerbitan asli: 16 Maret 2026Tanggal terakhir diperbarui: 3 April 2026ID KB: 5084567
Dalam artikel ini
Sekilas
Panduan ini menjelaskan sistem penyebaran otomatis untuk pembaruan sertifikat Windows Secure Boot DB menggunakan Kebijakan Grup dan gelombang peluncuran progresif.
Secure Boot Certificate Rollout Automation adalah sistem berbasis PowerShell yang menyebarkan pembaruan sertifikat Windows Secure Boot DB untuk mesin gabungan domain dengan cara yang terkendali dan lulus.
Fitur Utama
|
Fitur |
Deskripsi |
|
Peluncuran Yang Diluluskan |
1 > 2 > 4 > 8... perangkat per wadah |
|
Pemblokiran Otomatis |
Bucket dengan perangkat yang tidak dapat dijangkau dikecualikan |
|
Penyebaran GPO Otomatis |
Skrip orkestrator tunggal menangani semuanya |
|
Eksekusi Tugas Terjadwal |
Tidak memerlukan perintah interaktif |
|
Pemantauan Real-time |
Penampil status dengan bilah kemajuan |
Referensi Pengaturan Updates Sertifikat
Di bagian ini
Kebijakan AvailableUpdatesPolicy Group
|
Lokasi registri |
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecureBoot |
|
Nama |
AvailableUpdatesPolicy |
|
Nilai |
0x5944 (DWORD) |
Ini adalah kunci yang dikontrol GPO/ADMX yang:
-
Tetap melintasi boot ulang
-
Diatur menurut Kebijakan Grup / MDM
-
Tidak menyebabkan pengulangan coba lagi (dikosongkan melalui ClearRolloutFlags)
-
Adalah kunci yang tepat untuk penyebaran yang digerakkan oleh kebijakan
WinCSFlags - Bendera Sistem Konfigurasi Windows
Administrator domain dapat menggunakan Sistem Konfigurasi Windows (WinCS) yang dirilis dengan pembaruan Windows OS untuk menyebarkan pembaruan Boot Aman di seluruh klien dan server Windows yang tergabung dalam domain. Ini terdiri dari utilitas antarmuka baris perintah (CLI) untuk membuat kueri dan menerapkan konfigurasi Boot Aman secara lokal ke mesin.
|
Nama fitur |
Kunci WinCS |
Deskripsi |
|
Feature_AllKeysAndBootMgrByWinCS |
F33E0C8E002 |
Mengaktifkan kunci ini memungkinkan penginstalan sertifikat baru Secure Boot yang disediakan Microsoft di perangkat Anda.
|
Referensi: API Windows Configuration System (WinCS) untuk Boot Aman
Arsitektur
Fase 1: Deteksi dan Pemantauan Status di tingkat Perusahaan
Di bagian ini
Skrip yang diperlukan untuk Fase 1
Sampel skrip Pengumpulan Data Inventori Boot Aman
|
Contoh Nama Skrip |
Tujuan |
Berjalan Pada |
|
Mengumpulkan data status perangkat |
Setiap titik akhir (melalui GPO)Â |
|
|
Menghasilkan laporan dan dasbor |
Admin workstation |
|
|
Mengotomatisasi pembuatan GPO untuk pengumpulan data |
Pengontrol Domain |
kembali ke "Fase 1: Deteksi dan Pemantauan Status di tingkat Perusahaan"
Pengujian Lokal
Sebelum menyebarkan melalui GPO, uji skrip pengumpulan pada satu mesin untuk memverifikasi fungsionalitas.Â
-
Jalankan Skrip Koleksi Secara Lokal Buka perintah PowerShell yang ditingkatkan dan jalankan:
& .\Detect-SecureBootCertUpdateStatus.ps1 -OutputPath "C:\Temp\SecureBootTest"Â
-
Verifikasi Output JSON
# View the collected data Get-Content "C:\Temp\SecureBootTest\*_latest.json" | ConvertFrom-Json | Format-List
Bidang Kunci untuk Diverifikasi  • SecureBootEnabled – Harus True atau False • OverallStatus – Complete, ReadyForUpdate, NeedsData, atau Error • BucketHash – Wadah perangkat untuk pencocokan data kepercayaan diri • SecureBootTaskEnabled - Memperlihatkan status Secure Boot Update Task.
-
Uji Skrip Agregasi
# Generate reports from collected data & ".\Aggregate-SecureBootData.ps1" '   -InputPath "C:\Temp\SecureBoottest" '   -OutputPath "C:\Temp\SecureBootReports" # Buka dasbor HTML Start-Process "C:\Temp\SecureBootReports\SecureBoot_Dashboard_*.html" Â
kembali ke "Fase 1: Deteksi dan Pemantauan Status di tingkat Perusahaan"Â
Penyebaran GPO
Gunakan skrip otomatisasi yang disediakan dari pengontrol domain:
# Jalankan pada Pengontrol Domain sebagai Admin Domain untuk Bagian OU interaktif - Direkomendasikan # Ganti "Contoso.com", "Contoso" dengan nama domain # Ganti FILESERVER dengan nama server file.  Skrip memperlihatkan daftar OU untuk menyebarkan GPO pada .\Deploy-GPO-SecureBootCollection.ps1 '     -DomainName "contoso.com" '     -AutoDetectOU '     -CollectionSharePath "\\FILESERVER\SecureBootData$"     -ScriptSourcePath ".\Detect-SecureBootCertUpdateStatus.ps1" '     -Jadwal "Harian" '     -ScheduleTime "14:00" '     -RandomDelayHours 4Â
Skrip ini akan melakukan hal berikut:
-
Membuat GPO baru dengan nama yang ditentukan
-
Menyalin skrip pengumpulan ke SYSVOL untuk ketersediaan tinggi
-
Mengonfigurasi Skrip Startup Komputer
-
Menautkan GPO ke target OU
-
Secara opsional membuat tugas terjadwal untuk pengumpulan berkala
Tabel berikut ini memberikan panduan tentang berapa lama penundaan akan didasarkan pada ukuran armada Anda.
|
Ukuran armada |
Rentang penundaan |
|
Perangkat 1-10KÂ |
4 jam |
|
Perangkat 10K-50KÂ |
8 jam |
|
50K+ perangkat |
12-24 jam |
kembali ke "Fase 1: Deteksi dan Pemantauan Status di tingkat Perusahaan"Â
Ringkasan Pengaturan GPO
|
Pengaturan |
Lokasi |
Nilai |
|
Skrip Startup |
Skrip → Konfigurasi Komputer |
Detect-SecureBootCertUpdateStatus.ps1Â |
|
Parameter Skrip |
(sama)Â |
-OutputPath "\\server\share$"Â |
|
Kebijakan Eksekusi |
Templat → Admin Konfigurasi Komputer → PowerShell |
Perbolehkan lokal dan jarak jauh ditandatangani |
|
Tugas Terjadwal |
Preferensi → Konfigurasi Komputer → Tugas Terjadwal |
Koleksi Harian/Mingguan |
kembali ke "Fase 1: Deteksi dan Pemantauan Status di tingkat Perusahaan"Â
Verifikasi
-
Pembaruan GPO Paksa pada Uji Machine
## On a test workstation gpupdate /force # Boot ulang mesin klien untuk memulai skrip atau akan memicu pada jadwal berikutnya.  Restart-Computer -Force
-
Verifikasi Pengumpulan Data
# Periksa apakah data dikumpulkan (di server file atau dari komputer apa pun) Get-ChildItem "\\fileserver\SecureBootData$" | Â Â Â Sort-Object LastWriteTime -Turun | Â Â Â Select-Object -10 Â Pertama # Verifikasi konten JSON Get-Content "\\fileserver\SecureBootData$\TESTPC_latest.json" | ConvertFrom-JsonÂ
-
Periksa Aplikasi GPO
# Verifikasi bahwa GPO diterapkan ke komputer Select-String "SecureBoot" Skrip juga menyimpan salinan lokal untuk redundansi: Get-ChildItem "C:\ProgramData\SecureBootCollection\"Â
kembali ke "Fase 1: Deteksi dan Pemantauan Status di tingkat Perusahaan"
Fase 2: Skrip Orkestrasi Pembaruan Sertifikat Boot Aman
Penting:Â Pastikan Tahap1 selesai termasuk pengumpulan data di setiap titik akhir ke berbagi server jarak jauh.
Di bagian ini
Skrip yang diperlukan untuk Fase 2
Sampel skrip Pengumpulan Data Inventori Boot Aman
|
Contoh nama skrip |
Tujuan |
Berjalan pada |
|
Mengumpulkan data status perangkat |
Setiap titik akhir (melalui GPO)Â |
|
|
Menghasilkan laporan dan dasbor |
Admin workstation |
|
|
Mengotomatisasi pembuatan GPO untuk pengumpulan data |
Pengontrol Domain |
|
|
Orkestrasi berkelanjutan yang sepenuhnya otomatis dengan penyebaran GPO otomatis untuk penginstalan sertifikat |
Admin workstation |
|
|
Menyebarkan skrip Orkestrator sebagai tugas terjadwal untuk peluncuran otomatis |
Pengontrol Domain |
|
|
Menampilkan status Peluncuran Sertifikat Boot Aman dari stasiun kerja apa pun |
Admin Workstation |
|
|
 Mengaktifkan Tugas Pembaruan Boot Aman |
Titik Akhir di mana tugas dinonaktifkan (Jalankan hanya sekali untuk mengaktifkan tugas jika dinonaktifkan) |
kembali ke "Fase 2: Secure Boot Certificate Update Orchestration Scripts"Â
Start-SecureBootRolloutOrchestrator.ps1
-
Tujuan: Orkestrasi berkelanjutan yang sepenuhnya otomatis dengan penyebaran GPO otomatis.
-
Apa fungsinya
-
Panggilan Aggregate-SecureBootData.ps1 untuk status perangkat
-
Menghasilkan gelombang peluncuran menggunakan penggambaran progresif
-
Membuat GPO untuk penyebaran sertifikat menggunakan salah satu metode berikut
-
Kebijakan Grup boot aman AvailableUpdatesPolicy = 0x5944 (Default)
-
Metode WinCS (Parameter –UseWincS)
-
-
Membuat grup keamanan AD untuk penargetan
-
Menambahkan akun komputer ke grup keamanan
-
Mengonfigurasi pemfilteran keamanan GPO
-
Menautkan GPO ke target OU
-
Monitor untuk bucket yang diblokir (perangkat yang tidak dapat dijangkau)
-
Membuka blokir otomatis saat perangkat pulih
-
-
Penggunaan
# 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
-
perintah Admin
# List blocked buckets .\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -ListBlockedBuckets
# Unblock specific bucket .\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -UnblockBucket "Dell|Garis lintang5520|BIOS1.2"
# Unblock all .\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -UnblockAll
-
Parameter
Parameter
Default
Deskripsi
AgregasiInputPath
Wajib
Jalur UNC ke titik akhir file JSON
ReportBasePath
Wajib
Jalur lokal untuk laporan dan status
TargetOU
Akar domain
OU untuk menautkan GPO
WavePrefix
SecureBoot-Rollout
Prefiks penamaan GPO/grup
MaxWaitHours
72
Jam sebelum memeriksa keterjangkauan perangkat
PollIntervalMinutes
1440
Menit di antara pemeriksaan status
DryRun
False
Memperlihatkan apa yang akan terjadi tanpa perubahan
Catatan tentang PollIntervalMinutes:Â Ketika menjalankan orkestrator secara langsung, defaultnya adalah 1440 menit (24 jam). Ketika digunakan melalui Deploy-OrchestratorTask.ps1, defaultnya adalah 30 menit. Skrip penyebaran melewati defaultnya sendiri ke orkestrator. Gunakan 30 menit untuk peluncuran aktif, 1440 untuk pemantauan pemeliharaan.
Parameter Opsional
Parameter
Default
Deskripsi
MenggunakanWincs
False
Gunakan metode WinCS dan bukan AvailableUpdatesPolicy GPO
WinCSKey
F33E0C8E002
Kunci WinCS untuk konfigurasi Boot Aman
AllowListPath
(tidak ada)
Jalur ke file dengan nama host ke ALLOW untuk peluncuran bertarget/percobaan. Mendukung .txt atau .csv.
AllowADGroup
(tidak ada)
Grup keamanan AD akun komputer ke ALLOW. Contoh: "SecureBoot-Pilot-Computers"
ExclusionListPath
(tidak ada)
Jalur ke file dengan nama host untuk DIKECUALIKAN dari peluncuran (perangkat VIP/eksekutif)
ExcludeADGroup
(tidak ada)
Grup keamanan AD akun komputer untuk dikecualikan. Contoh: "VIP-Computers"
ListBlockedBuckets
False
Menampilkan wadah perangkat yang saat ini diblokir
Membuka blokirBucket
(tidak ada)
Membuka blokir wadah tertentu. Format: "Produsen|Model|BIOS"
Membuka blokir Semu
False
Membuka blokir semua wadah perangkat yang diblokir
kembali ke "Fase 2: Secure Boot Certificate Update Orchestration Scripts"Â Â
Deploy-OrchestratorTask.ps1
-
Tujuan:Â Menyebarkan orkestrator sebagai Tugas Terjadwal Windows.
-
Tunjangan
-
Tidak ada perintah keamanan PowerShell (ExecutionPolicy Bypass)
-
Berjalan di latar belakang terus-menerus
-
Tidak diperlukan interaksi pengguna
-
Bertahan dalam boot ulang
-
-
Penggunaan
-
Sebarkan dengan akun layanan domain (disarankan)
-
Menggunakan Kebijakan Grup AvailableUpdates (Metode Default)
.\Deploy-OrchestratorTask.ps1 ' Â Â -AggregationInputPath "\\server\SecureBootData$" ' Â Â -ReportBasePath "C:\SecureBootReports" ' Â Â -ServiceAccount "DOMAIN\svc_secureboot"
-
Menggunakan metode WinCS
.\Deploy-OrchestratorTask.ps1 ' Â Â -AggregationInputPath "\\server\SecureBootData$" ' Â Â -ReportBasePath "C:\SecureBootReports" ' Â Â -ServiceAccount "DOMAIN\svc_secureboot" -UseWinCS
-
-
Sebarkan dengan akun SYSTEM
-
Menggunakan Kebijakan Grup AvailableUpdates (Metode Default)
.\Deploy-OrchestratorTask.ps1 ' Â Â Â -AggregationInputPath "\\server\SecureBootData$" ' Â Â Â -ReportBasePath "C:\SecureBootReports"
-
Menggunakan method.\Deploy-OrchestratorTask.ps1 WinCS
   -AggregationInputPath "\\server\SecureBootData$" '    -ReportBasePath "C:\SecureBootReports" -UseWinCS
-
Persyaratan Akun Layanan
-
Admin domain (untuk New-GPO, New-ADGroup, Add-ADGroupMember)
-
Membaca akses ke file JSON yang dibagikan
-
Menulis akses ke ReportBasePath
-
-
-
kembali ke "Fase 2: Secure Boot Certificate Update Orchestration Scripts"Â Â
Get-SecureBootRolloutStatus.ps1
-
Tujuan:Â Lihat kemajuan peluncuran dari stasiun kerja apa pun.
-
Apa yang diperlihatkannya
-
Status tugas terjadwal (Berjalan/Siap/Dihentikan)
-
Nomor gelombang saat ini
-
Perangkat yang ditargetkan vs diperbarui
-
Bilah kemajuan visual
-
Ringkasan wadah yang diblokir
-
Tautan ke dasbor HTML terbaru
-
-
Penggunaan
# 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
-
Parameter
Parameter
Diperlukan?
Default
Deskripsi
ReportBasePath
Wajib
—
Jalur lokal ke laporan dan file status
TampilkanLog
Opsional
False
Menampilkan entri log orkestrator terbaru
ShowBlocked
Opsional
False
Menampilkan detail wadah yang diblokir
ShowWaves
Opsional
False
Menampilkan riwayat gelombang
Tonton
Opsional
0 (dinonaktifkan)
Interval refresh otomatis dalam detik. Contoh: -Watch 30 refreshes every 30 seconds.
OpenDashboard
Opsional
False
Membuka dasbor HTML terbaru di browser default
-
Output sampel
============================================================== Â Â STATUS PELUNCURAN BOOT AMAN Â Â 2026-02-17 19:30:00 ======================================================
Scheduled Task: Running
ROLLOUT PROGRESS ---------------------------------------- Status: InProgress Gelombang Saat Ini: 5 Total Ditargetkan: 1250 Total Diperbarui: 847
Progress: [█████████████████████░░░░░░░░░░░░░░░░░░░] 67.8%
BLOCKED BUCKETS: 2 buckets need attention  Jalankan dengan -ShowBlocked untuk detailnya
LATEST DASHBOARD C:\SecureBootReports\Aggregation_20260217_193000\SecureBoot_Dashboard.html __________________________________________________________________________________________
kembali ke "Fase 2: Secure Boot Certificate Update Orchestration Scripts"
Langkah Penyebaran E2E (Panduan Referensi Cepat)
Di bagian ini
Fase 1: Infrastruktur Deteksi
-
Langkah 1: Buat Berbagi Koleksi
# On file server $sharePath = "D:\SecureBootData" New-Item -Direktori ItemType -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("Komputer Domain","Modifikasi","Izinkan") $acl. AddAccessRule($rule) Set-Acl $sharePath $acl
-
Langkah 2: Menyebarkan GPO Deteksi
.\Deploy-GPO-SecureBootCollection.ps1 ` Â Â -DomainName "contoso.com" ' Â Â -OUPath "OU=Workstations,DC=contoso,DC=com" ' Â Â -CollectionSharePath "\\server\SecureBootData$"
-
Langkah 3: Tunggu Titik Akhir ke Laporan (24-48 jam)
# Periksa kemajuan pengumpulan (Get-ChildItem "\\server\SecureBootData$" -Filter "*.json"). Menghitung
kembali ke "Langkah Penyebaran E2E (Panduan Referensi Cepat)"Â
Fase 2: Peluncuran Orkestrasi
-
Langkah 4: Pemeriksaan Prasyarat
-
GPO Deteksi disebarkan (Langkah 2)
-
Setidaknya ada 50+ titik akhir yang melaporkan JSON
-
Akun layanan dengan hak Admin Domain
-
Server manajemen dengan PowerShell 5.1+
-
-
Langkah 5: Menyebarkan Orkestrator sebagai Tugas Terjadwal
.\Deploy-OrchestratorTask.ps1 ` Â Â -AggregationInputPath "\\server\SecureBootData$" ' Â Â -ReportBasePath "C:\SecureBootReports" ' Â Â -ServiceAccount "DOMAIN\svc_secureboot"
-
Langkah 6: Pantau Kemajuan
.\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports"
-
Langkah 7: Tampilkan Dasbor
.\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports" -OpenDashboard
-
Langkah 8: Kelola Bucket yang Diblokir
# List blocked .\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -ListBlockedBuckets
# Investigate and unblock .\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -UnblockBucket "Manufacturer|Model|BIOS"
-
Langkah 9: Verifikasi Penyelesaian
.\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports" # Status harus memperlihatkan "Selesai"
kembali ke "Langkah Penyebaran E2E (Panduan Referensi Cepat)"Â Â
Files negara bagian
Orkestrator mempertahankan status di ReportBasePath\RolloutState\:
|
File |
Deskripsi |
|
RolloutState.json |
Riwayat gelombang, perangkat yang ditargetkan, status |
|
BlockedBuckets.json |
Bucket membutuhkan penyelidikan |
|
DeviceHistory.json |
Pelacakan perangkat menurut nama host |
|
Orchestrator_YYYYMMDD.log |
Log aktivitas harian |
kembali ke "Langkah Penyebaran E2E (Panduan Referensi Cepat)"Â
Memecahkan masalah
Di bagian ini
Orkestrator Tidak Mengalami Kemajuan
-
Memeriksa tugas terjadwal
Get-ScheduledTask -TaskName "SecureBoot-Rollout-Orchestrator"
-
Memeriksa log
Get-Content "C:\SecureBootReports\RolloutState\Orchestrator_*.log" -Tail 50
-
Memverifikasi kesegaran data JSON
(Get-ChildItem "\\server\SecureBootData$" -Filter "*.json" | Where-Object { $_.LastWriteTime -gt (Get-Date).AddDays(-1) }).Count
Bucket yang Diblokir
-
Daftar diblokir.
.\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -ListBlockedBuckets
-
Selidiki keterjangkauan perangkat.
-
Periksa masalah firmware.
-
Buka blokir setelah penyelidikan.
GPO Tidak Berlaku
-
Verifikasi bahwa GPO sudah ada.
Get-GPO -Name "SecureBoot-Rollout-Wave*"
-
Periksa pemfilteran keamanan.
Get-GPPermission -Name "GPO-Name" -All
-
Verifikasi bahwa komputer berada dalam grup keamanan.
-
Terapkan GPO pada target.
gpupdate /force