Örnek Güvenli Önyükleme E2E Otomasyon Kılavuzu
Uygulandığı Öğe
Özgün yayımlama tarihi: 16 Mart 2026, İstanbul
KB Kimliği: 5084567
Bu makalede
Genel bakış
Bu kılavuzda, grup ilkesi ve aşamalı dağıtım dalgalarını kullanan Windows Güvenli Önyükleme DB sertifika güncelleştirmeleri için otomatik dağıtım sistemi açıklanmaktadır.
Güvenli Önyükleme Sertifikası Dağıtım Otomasyonu, Etki alanına katılmış makinelere Windows Güvenli Önyükleme DB sertifika güncelleştirmelerini denetimli ve dereceli bir şekilde dağıtan PowerShell tabanlı bir sistemdir.
Temel Özellikler
|
Özellik |
Açıklama |
|
Mezun Olan Dağıtım |
1 > 2 > 4 > 8... demet başına cihaz |
|
Otomatik Engelleme |
Ulaşılamayan cihazlar içeren demetler dışlanır |
|
Otomatik GPO Dağıtımı |
Tek düzenleyici betiği her şeyi işler |
|
Zamanlanmış Görev Yürütme |
Etkileşimli istem gerekmez |
|
Gerçek Zamanlı İzleme |
İlerleme çubuğuyla durum görüntüleyicisi |
Sertifika Güncelleştirmeler Ayarları Başvurusu
Bu bölümde
AvailableUpdatesPolicy Grup ilkesi
|
Kayıt defteri konumu |
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecureBoot |
|
Ad |
AvailableUpdatesPolicy |
|
Değer |
0x5944 (DWORD) |
Bu, aşağıdaki GPO/ADMX denetimli anahtardır:
-
Yeniden başlatmalar arasında kalıcı hale
-
grup ilkesi / MDM tarafından ayarlanır
-
Yeniden deneme döngülerine neden olmaz (ClearRolloutFlags aracılığıyla temizlenir)
-
İlke temelli dağıtım için doğru anahtar mı?
"Sertifika Güncelleştirmeler Ayarları Başvurusu" bölümüne geri dön
WinCSFlags - Windows Yapılandırma Sistemi Bayrakları
Etki alanı yöneticileri, Güvenli Önyükleme güncelleştirmelerini etki alanına katılmış Windows istemcileri ve sunucuları arasında dağıtmak için alternatif olarak Windows işletim sistemi güncelleştirmeleriyle birlikte yayımlanan Windows Yapılandırma Sistemi'ni (WinCS) kullanabilir. Bir makineye yerel olarak Güvenli Önyükleme yapılandırmalarını sorgulamak ve uygulamak için bir komut satırı arabirimi (CLI) yardımcı programı içerir.
|
Özellik adı |
WinCS Anahtarı |
Açıklama |
|
Feature_AllKeysAndBootMgrByWinCS |
F33E0C8E002 |
Bu anahtarın etkinleştirilmesi, microsoft tarafından sağlanan aşağıdaki Güvenli Önyükleme yeni sertifikalarının cihazınıza yüklenmesine olanak tanır.
|
Başvuru: Güvenli Önyükleme için Windows Yapılandırma Sistemi (WinCS) API'leri
"Sertifika Güncelleştirmeler Ayarları Başvurusu" bölümüne geri dön
Mimari
1. Aşama: Kurumsal düzeyde Algılama ve Durum İzleme
Bu bölümde
1. Aşama için gereken betikler
Örnek Güvenli Önyükleme Envanteri Veri Toplama betikleri
|
Örnek Betik Adı |
Amaç |
Üzerinde Çalıştırılır |
|
Cihaz durum verilerini toplar |
Her uç nokta (GPO aracılığıyla) |
|
|
Raporlar ve panolar oluşturur |
Yönetici iş istasyonu |
|
|
Veri toplama için GPO oluşturmayı otomatikleştirir |
Etki Alanı Denetleyicisi |
Yerel Test
GPO aracılığıyla dağıtmadan önce, işlevselliği doğrulamak için koleksiyon betiğini tek bir makinede test edin.
-
Koleksiyon Betiğini Yerel Olarak Çalıştırma Yükseltilmiş bir PowerShell istemi açın ve şu komutu yürütür:
& .\Detect-SecureBootCertUpdateStatus.ps1 -OutputPath "C:\Temp\SecureBootTest"
-
JSON Çıkışını Doğrulama
# View the collected data Get-Content "C:\Temp\SecureBootTest\*_latest.json" | ConvertFrom-Json | Format-List
Doğrulanması Gereken Anahtar Alanları • SecureBootEnabled – Doğru veya Yanlış olmalıdır • OverallStatus – Complete, ReadyForUpdate, NeedsData veya Error • BucketHash – Güvenilirlik veri eşleştirmesi için cihaz demeti • SecureBootTaskEnabled - Güvenli Önyükleme Güncelleştirme Görevinin durumunu gösterir.
-
Test Toplama Betiği
# Generate reports from collected data & .\Aggregate-SecureBootCertStatus.ps1" ' -InputPath "C:\Temp\SecureBootTest" ' -OutputPath "C:\Temp\SecureBootReports" # HTML panosunu açma
Start-Process "C:\Temp\SecureBootReports\SecureBoot_Dashboard_*.html"
GPO Dağıtımı
Bir etki alanı denetleyicisinden sağlanan otomasyon betiğini kullanın:
# Etki Alanı Denetleyicisinde Etkileşimli OU Bölümü için Etki Alanı Yönetici Olarak Çalıştır – Önerilir # "Contoso.com", "Contoso" yerine etki alanının adını yazın # FILESERVER değerini dosya sunucusu adıyla değiştirin. Betik, GPO'nun dağıtılacağı OU'ların listesini gösterir .\Deploy-GPO-SecureBootCollection.ps1 ' -DomainName "contoso.com" ' -AutoDetectOU ' -CollectionSharePath "\\FILESERVER\SecureBootLogs$" ' -ScriptSourcePath ".\Detect-SecureBootCertUpdateStatus.ps1" ' -Schedule "Daily" ' -ScheduleTime "14:00" ' -RandomDelayHours 4
Bu betik aşağıdakileri gerçekleştirir:
-
Belirtilen ada sahip yeni GPO oluşturur
-
Yüksek kullanılabilirlik için koleksiyon betiğini SYSVOL'e kopyalar
-
Bilgisayar Başlangıç Betiğini Yapılandırıyor
-
GPO'yi hedef OU'ya bağlar
-
İsteğe bağlı olarak düzenli toplama için zamanlanmış görev oluşturur
Aşağıdaki tabloda, gecikmenin filonuzun boyutuna göre ne kadar süreceği konusunda rehberlik sağlanmaktadır.
|
Filo boyutu |
Gecikme aralığı |
|
1-10K cihazlar |
4 saat |
|
10K-50K cihazlar |
8 saat |
|
50 binden fazla cihaz |
12-24 saat |
GPO Ayarları Özeti
|
Ayar |
Konum |
Değer |
|
Başlangıç Betiği |
Bilgisayar Yapılandırması → Betikleri |
Detect-SecureBootCertUpdateStatus.ps1 |
|
Betik Parametreleri |
(aynı) |
-OutputPath "\\server\share$" |
|
Yürütme İlkesi |
PowerShell → Bilgisayar Yapılandırması → Yönetici Şablonları |
Yerel ve uzaktan imzalı izin ver |
|
Zamanlanmış Görev |
Zamanlanmış Görevler → Bilgisayar Yapılandırması → Tercihleri |
Günlük/Haftalık koleksiyon |
Doğrulama
-
Test Machin e'de GPO Güncelleştirmesini Zorlama
## On a test workstation gpupdate /force # İstemci makinelerini başlatma betiğine yeniden başlatın, aksi takdirde sonraki zamanlamada tetiklenir. Restart-Computer -Zorla
-
Veri Toplamayı Doğrulama
# Verilerin toplanıp toplanmadığını denetleyin (dosya sunucusunda veya herhangi bir makineden) Get-ChildItem "\\fileserver\SecureBootData$" | Sort-Object LastWriteTime -Descending | Select-Object -İlk 10 # JSON içeriğini doğrulama Get-Content "\\fileserver\SecureBootData$\TESTPC_latest.json" | ConvertFrom-Json
-
GPO Uygulamasını Denetleme
# GPO'un bilgisayara uygulandığını doğrulayın gpresult /r /scope:computer | "SecureBoot" Select-String S Betik ayrıca yedeklilik için yerel bir kopya kaydeder: Get-ChildItem "C:\ProgramData\SecureBootCollection\"
2. Aşama: Güvenli Önyükleme Sertifikası Güncelleştirme Düzenleme Betikleri
Önemli: Her bitiş noktasında uzak sunucu paylaşımlarına veri toplama dahil olmak üzere Aşama1'in tamamlandığından emin olun.
Bu bölümde
2. Aşama için gereken betikler
Örnek Güvenli Önyükleme Envanteri Veri Toplama betikleri
|
Örnek betik adı |
Amaç |
Şu sürümlerde çalışır: |
|
Cihaz durum verilerini toplar |
Her uç nokta (GPO aracılığıyla) |
|
|
Raporlar ve panolar oluşturur |
Yönetici iş istasyonu |
|
|
Veri toplama için GPO oluşturmayı otomatikleştirir |
Etki Alanı Denetleyicisi |
|
|
Sertifika yüklemesi için otomatik GPO dağıtımı ile tam otomatik, sürekli düzenleme |
Yönetici iş istasyonu |
|
|
Orchestrator betiğini otomatik dağıtım için zamanlanmış görev olarak dağıtır |
Etki Alanı Denetleyicisi |
|
|
Herhangi bir iş istasyonundan Güvenli Önyükleme Sertifikası Dağıtım durumunu görüntüleme |
Yönetici İş İstasyonu |
|
|
Güvenli Önyükleme Güncelleştirme Görevini etkinleştirir |
Görevin devre dışı bırakıldığı Uç noktalarda (Devre dışıysa görevi etkinleştirmek için yalnızca bir kez çalıştır) |
"2. Aşama: Güvenli Önyükleme Sertifikası Güncelleştirme Düzenleme Betikleri"
Start-SecureBootRolloutOrchestrator.ps1
-
Amaç: Otomatik GPO dağıtımı ile tam otomatik, sürekli düzenleme.
-
Ne yapar?
-
Cihaz durumu için Aggregate-SecureBootData.ps1 çağırır
-
Aşamalı iki katına çıkarma kullanarak dağıtım dalgaları oluşturur
-
Aşağıdaki yöntemlerden birini kullanarak sertifika dağıtımı için GPO oluşturur
-
Güvenli önyükleme Grubu ilkesi AvailableUpdatesPolicy = 0x5944 (Varsayılan)
-
WinCS yöntemi (Parametre –UseWinCS)
-
-
Hedefleme için AD güvenlik grupları oluşturur
-
Güvenlik gruplarına bilgisayar hesapları ekler
-
GPO güvenlik filtrelemesini yapılandırıyor
-
GPO'yi hedef OU'ya bağlar
-
Engellenen demetler için izleyiciler (ulaşılamayan cihazlar)
-
Cihazlar kurtarıldığında engellemeyi otomatik olarak kaldırma
-
-
Kullanım
# 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
-
Yönetici komutları
# 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
-
Parametre
Parametre
Varsayılan
Açıklama
AggregationInputPath
Gerekli
Uç nokta JSON dosyalarının UNC yolu
ReportBasePath
Gerekli
Raporlar ve durum için yerel yol
TargetOU
Etki alanı kökü
GPO'ları bağlamak için OU
WavePrefix
SecureBoot-Rollout
GPO/grup adlandırma ön eki
MaxWaitHours
72
Cihaz erişilebilirliğini denetlemeden saatler önce
PollIntervalMinutes
1440
Durum denetimleri arasındaki dakika
DryRun
False
Değişiklik olmadan neler olacağını göster
"2. Aşama: Güvenli Önyükleme Sertifikası Güncelleştirme Düzenleme Betikleri"
Deploy-OrchestratorTask.ps1
-
Amaç: Düzenleyiciyi Windows Zamanlanmış Görevi olarak dağıtır.
-
Avantajlar
-
PowerShell güvenlik istemleri yok (ExecutionPolicy Bypass)
-
Arka planda sürekli çalışır
-
Kullanıcı etkileşimi gerekmez
-
Yeniden başlatmalarda hayatta kalır
-
-
Kullanım
-
Etki alanı hizmet hesabıyla dağıtma (önerilen)
-
AvailableUpdates grup ilkesi kullanma (Varsayılan Yöntem)
.\Deploy-OrchestratorTask.ps1 ' -AggregationInputPath "\\server\SecureBootData$" ' -ReportBasePath "C:\SecureBootReports" ' -ServiceAccount "ETKİALANI\svc_secureboot"
-
WinCS yöntemini kullanma
.\Deploy-OrchestratorTask.ps1 ' -AggregationInputPath "\\server\SecureBootData$" ' -ReportBasePath "C:\SecureBootReports" ' -ServiceAccount "DOMAIN\svc_secureboot" -UseWinCS
-
-
SYSTEM hesabıyla dağıtma
-
AvailableUpdates grup ilkesi kullanma (Varsayılan Yöntem)
.\Deploy-OrchestratorTask.ps1 ' -AggregationInputPath "\\server\SecureBootData$" ' -ReportBasePath "C:\SecureBootReports"
-
WinCS method.\Deploy-OrchestratorTask.ps1 kullanma
-AggregationInputPath "\\server\SecureBootData$" ' -ReportBasePath "C:\SecureBootReports" -UseWinCS
-
Hizmet Hesabı Gereksinimleri
-
Etki alanı Yönetici (New-GPO, New-ADGroup, Add-ADGroupMember için)
-
JSON dosya paylaşımına okuma erişimi
-
ReportBasePath'e yazma erişimi
-
-
-
"2. Aşama: Güvenli Önyükleme Sertifikası Güncelleştirme Düzenleme Betikleri"
Get-SecureBootRolloutStatus.ps1
-
Amaç: Herhangi bir iş istasyonundan dağıtım ilerleme durumunu görüntüleyin.
-
Ne gösterir?
-
Zamanlanmış görev durumu (Çalışıyor/Hazır/Durduruldu)
-
Geçerli dalga numarası
-
Hedeflenen ve güncelleştirilen cihazlar
-
Görsel ilerleme çubuğu
-
Engellenen demet özeti
-
En son HTML panosuna bağlantı
-
-
Kullanım
# 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
-
Örnek çıkış
============================================================== GÜVENLI ÖNYÜKLEME DAĞıTıMı DURUMU 2026-02-17 19:30:00 ======================================================
Scheduled Task: Running
ROLLOUT PROGRESS ---------------------------------------- Durum: InProgress Akım Dalgası: 5 Toplam Hedeflenen: 1250 Toplam Güncelleştirme: 847
Progress: [█████████████████████░░░░░░░░░░░░░░░░░░░] 67.8%
BLOCKED BUCKETS: 2 buckets need attention Ayrıntılar için -ShowBlocked ile çalıştırma
LATEST DASHBOARD C:\SecureBootReports\Aggregation_20260217_193000\SecureBoot_Dashboard.html __________________________________________________________________________________________
"2. Aşama: Güvenli Önyükleme Sertifikası Güncelleştirme Düzenleme Betikleri"
E2E Dağıtım Adımları (Hızlı Başvuru Kılavuzu)
Bu bölümde
1. Aşama: Algılama Altyapısı
-
1. Adım: Koleksiyon Paylaşımı Oluşturma
# On file server $sharePath = "D:\SecureBootData" New-Item -ItemType Dizini -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
-
2. Adım: Algılama GPO'su dağıtma
.\Deploy-GPO-SecureBootCollection.ps1 ` -DomainName "contoso.com" ' -OUPath "OU=Workstations,DC=contoso,DC=com" ' -CollectionSharePath "\\server\SecureBootData$"
-
3. Adım: Uç Noktaların Raporlanmasını Bekleme (24-48 saat)
# Koleksiyon ilerleme durumunu denetleyin (Get-ChildItem "\\server\SecureBootData$" -Filter "*.json"). Sayısı
2. Aşama: Düzenlemeli Dağıtım
-
4. Adım: Önkoşul Denetimi
-
Dağıtılan GPO algılama (2. Adım)
-
JSON bildiren en az 50+ uç nokta
-
Etki alanı Yönetici haklarına sahip hizmet hesabı
-
PowerShell 5.1+ ile yönetim sunucusu
-
-
5. Adım: Orchestrator'ı Zamanlanmış Görev Olarak Dağıtma
.\Deploy-OrchestratorTask.ps1 ` -AggregationInputPath "\\server\SecureBootData$" ' -ReportBasePath "C:\SecureBootReports" ' -ServiceAccount "ETKİALANI\svc_secureboot"
-
6. Adım: İlerleme durumunu izleme
.\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports"
-
7. Adım: Panoyu Görüntüleme
.\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports" -OpenDashboard
-
8. Adım: Engellenen Demetleri Yönetme
# List blocked .\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -ListBlockedBuckets
# Investigate and unblock .\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -UnblockBucket "Manufacturer|Model|BIOS"
-
9. Adım: Tamamlandığından Emin Olun
.\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports" # Durum "Tamamlandı" ifadesini göstermelidir
Durum Files
Orchestrator, ReportBasePath\RolloutState\:
|
Dosya |
Açıklama |
|
RolloutState.json |
Dalga geçmişi, hedeflenen cihazlar, durum |
|
BlockedBuckets.json |
Araştırılması gereken demetler |
|
DeviceHistory.json |
Konak adına göre cihaz izleme |
|
Orchestrator_YYYYMMDD.log |
Günlük etkinlik günlükleri |
Sorun Giderme
Bu bölümde
Orchestrator İlerlemiyor
-
Zamanlanmış görevi denetleme
Get-ScheduledTask -TaskName "SecureBoot-Rollout-Orchestrator"
-
Günlükleri denetleme
Get-Content "C:\SecureBootReports\RolloutState\Orchestrator_*.log" -Tail 50
-
JSON verilerinin güncelliğini doğrulama
(Get-ChildItem "\\server\SecureBootData$" -Filter "*.json" | Where-Object { $_.LastWriteTime -gt (Get-Date).AddDays(-1) }).Count
Engellenen Demetler
-
Liste engellendi.
.\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -ListBlockedBuckets
-
Cihaz erişilebilirliğini araştırma.
-
Üretici yazılımı sorunlarını denetleyin.
-
Araştırmadan sonra engellemeyi kaldırın.
GPO Uygulanmıyor
-
GPO'nin mevcut olduğunu doğrulayın.
Get-GPO -Name "SecureBoot-Rollout-Wave*"
-
Güvenlik filtrelemesini denetleyin.
Get-GPPermission -Name "GPO-Name" -All
-
Bilgisayarın güvenlik grubunda olduğunu doğrulayın.
-
Hedefe GPO uygulayın.
gpupdate /force