Uygulandığı Öğe
Windows 10 Windows 10, version 1607, all editions Win 10 Ent LTSC 2019 Win 10 IoT Ent LTSC 2019 Windows 10 IoT Core LTSC Windows 10 Enterprise LTSC 2021 Windows 10 IoT Enterprise LTSC 2021 Windows 10, version 22H2, all editions Windows 11 Home and Pro, version 21H2 Windows 11 Enterprise Multi-Session, version 21H2 Windows 11 Enterprise and Education, version 21H2 Windows 11 IoT Enterprise, version 21H2 Windows 11 Home and Pro, version 22H2 Windows 11 Enterprise Multi-Session, version 22H2 Windows 11 Enterprise and Education, version 22H2 Windows 11 IoT Enterprise, version 22H2 Windows 11 SE, version 23H2 Windows 11 Home and Pro, version 23H2 Windows 11 Enterprise and Education, version 23H2 Windows 11 Enterprise Multi-Session, version 23H2 Windows 11 SE, version 24H2 Windows 11 Enterprise and Education, version 24H2 Windows 11 Enterprise Multi-Session, version 24H2 Windows 11 Home and Pro, version 24H2 Windows 11 IoT Enterprise, version 24H2 Windows Server 2012 ESU Windows Server 2012 R2 ESU Windows Server 2016 Windows Server 2019 Windows Server 2022 Windows Server 2025

Özgün yayımlama tarihi: 17 Kasım 2025, İstanbul

KB kimliği: 5072718

Örnek Güvenli Önyükleme Envanteri Veri Toplama betiği

Bu örnek betiği kopyalayıp yapıştırın ve ortamınız için gerektiği gibi değiştirin: Örnek Güvenli Önyükleme Envanteri Veri Toplama betiği.

Sample_Secure_Boot_Inventory_Data_Collection_script

# 1. HostName # PS Sürümü: Tümü | Yönetici: Hayır | Sistem Gereksinimleri: Yok try {     $hostname = $env:COMPUTERNAME     if ([string]::IsNullOrEmpty($hostname)) {         Write-Warning "Ana bilgisayar adı belirlenemedi"         $hostname = "Bilinmiyor"     }     "Ana bilgisayar adı: $hostname" Write-Host } catch {     Write-Warning "Ana bilgisayar adı alınırken hata oluştu: $_"     $hostname = "Hata"     "Ana bilgisayar adı: $hostname" Write-Host }

# 2. CollectionTime # PS Sürümü: Tümü | Yönetici: Hayır | Sistem Gereksinimleri: Yok try {     $collectionTime = Get-Date     if ($null -eq $collectionTime) {         Write-Warning "Geçerli tarih/saat alınamadı"         $collectionTime = "Bilinmiyor"     }     Write-Host "Koleksiyon Zamanı: $collectionTime" } catch {     Write-Warning "Tarih/saat alınırken hata oluştu: $_"     $collectionTime = "Hata"     Write-Host "Koleksiyon Zamanı: $collectionTime" }

# Registry: Secure Boot Main Key (3 values)

# 3. SecureBootEnabled # PS Sürümü: 3.0+ | Yönetici: Gerekli olabilir | Sistem Gereksinimleri: UEFI/Güvenli Önyükleme özellikli sistem try {     $secureBootEnabled = Confirm-SecureBootUEFI -ErrorAction Stop     Write-Host "Güvenli Önyükleme Etkin: $secureBootEnabled" } catch {     Write-Warning "Cmdlet aracılığıyla Güvenli Önyükleme durumu belirlenemiyor: $_"     # Kayıt defteri geri dönüşünü deneyin     try {         $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\State" -Name UEFISecureBootEnabled -ErrorAction Stop         $secureBootEnabled = [bool]$regValue.UEFISecureBootEnabled         Write-Host "Güvenli Önyükleme Etkin: $secureBootEnabled"     } catch {         Write-Warning "Kayıt defteri aracılığıyla Güvenli Önyükleme durumu belirlenemiyor. Sistem UEFI/Güvenli Önyüklemeyi desteklemeyebilir."         $secureBootEnabled = $null         Write-Host "Güvenli Önyükleme Etkin: Kullanılamıyor"     } }

# 4. HighConfidenceOptOut # PS Sürümü: Tümü | Yönetici: Gerekli olabilir | Sistem Gereksinimleri: Yok try {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot" -Name HighConfidenceOptOut -ErrorAction Stop     $highConfidenceOptOut = $regValue.HighConfidenceOptOut     Write-Host "Yüksek Güvenilirlikli Geri Çevirme: $highConfidenceOptOut" } catch {     Write-Warning "HighConfidenceOptOut kayıt defteri anahtarı bulunamadı veya erişilemez"     $highConfidenceOptOut = $null     Write-Host "Yüksek Güvenilirlikli Geri Çevirme: Kullanılamıyor" }

# 5. AvailableUpdates # PS Sürümü: Tümü | Yönetici: Gerekli olabilir | Sistem Gereksinimleri: Yok try {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot" -Name AvailableUpdates -ErrorAction Stop     $availableUpdates = $regValue.AvailableUpdates     if ($null -ne $availableUpdates) {         # Onaltılık biçime dönüştür         $availableUpdatesHex = "0x{0:X}" -f $availableUpdates         Write-Host "Kullanılabilir Güncelleştirmeler: $availableUpdatesHex"     } else {         Write-Host "Kullanılabilir Güncelleştirmeler: Kullanılamıyor"     } } catch {     Write-Warning "AvailableUpdates kayıt defteri anahtarı bulunamadı veya erişilemez"     $availableUpdates = $null     Write-Host "Kullanılabilir Güncelleştirmeler: Kullanılamıyor" }

# Registry: Servicing Key (3 values)

# 6. UEFICA2023Status # PS Sürümü: Tümü | Yönetici: Gerekli olabilir | Sistem Gereksinimleri: Yok try {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\Servicing" -Name UEFICA2023Status -ErrorAction Stop     $uefica 2023Status = $regValue.UEFICA2023Status     Write-Host "UEFI CA 2023 Durumu: $uefica 2023Status" } catch {     Write-Warning "UEFICA2023Status kayıt defteri anahtarı bulunamadı veya erişilemez"     $uefica 2023Status = $null     Write-Host "UEFI CA 2023 Durumu: Kullanılamıyor" }

# 7. UEFICA2023Capable # PS Sürümü: Tümü | Yönetici: Gerekli olabilir | Sistem Gereksinimleri: Yok try {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\Servicing" -Name UEFICA2023Capable -ErrorAction Stop     $uefica 2023Capable = $regValue.UEFICA2023Capable     Write-Host "UEFI CA 2023 Özellikli: $uefica 2023Capable" } catch {     Write-Warning "UEFICA2023Capable kayıt defteri anahtarı bulunamadı veya erişilemez"     $uefica 2023Capable = $null     Write-Host "UEFI CA 2023 Özellikli: Kullanılamıyor" }

# 8. UEFICA2023Error # PS Sürümü: Tümü | Yönetici: Gerekli olabilir | Sistem Gereksinimleri: Yok try {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\Servicing" -Name UEFICA2023Error -ErrorAction Stop     $uefica 2023Hata = $regValue.UEFICA2023Hata     Write-Host "UEFI CA 2023 Hatası: $uefica 2023Hata" } catch {     Write-Warning "UEFICA2023Error kayıt defteri anahtarı bulunamadı veya erişilemez"     $uefica 2023Hata = $null     Write-Host "UEFI CA 2023 Hatası: Kullanılamıyor" }

# Registry: Device Attributes (7 values)

# 9. OEMManufacturerName # PS Sürümü: Tümü | Yönetici: Gerekli olabilir | Sistem Gereksinimleri: Yok try {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OEMManufacturerName -ErrorAction Stop     $oemManufacturerName = $regValue.OEMManufacturerName     if ([string]::IsNullOrEmpty($oemManufacturerName)) {         Write-Warning "OEMManufacturerName boş"         $oemManufacturerName = "Bilinmiyor"     }     Write-Host "OEM Üretici Adı: $oemManufacturerName" } catch {     Write-Warning "OEMManufacturerName kayıt defteri anahtarı bulunamadı veya erişilemez"     $oemManufacturerName = $null     Write-Host "OEM Üretici Adı: Kullanılamıyor" }

# 10. OEMModelSystemFamily # PS Sürümü: Tümü | Yönetici: Gerekli olabilir | Sistem Gereksinimleri: Yok try {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OEMModelSystemFamily -ErrorAction Stop     $oemModelSystemFamily = $regValue.OEMModelSystemFamily     if ([string]::IsNullOrEmpty($oemModelSystemFamily)) {         Write-Warning "OEMModelSystemFamily boş"         $oemModelSystemFamily = "Bilinmiyor"     }     Write-Host "OEM Model Sistem Ailesi: $oemModelSystemFamily" } catch {     Write-Warning "OEMModelSystemFamily kayıt defteri anahtarı bulunamadı veya erişilemez"     $oemModelSystemFamily = $null     Write-Host "OEM Model Sistemi Ailesi: Kullanılamıyor" }

# 11. OEMModelNumber # PS Sürümü: Tümü | Yönetici: Gerekli olabilir | Sistem Gereksinimleri: Yok try {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OEMModelNumber -ErrorAction Stop     $oemModelNumber = $regValue.OEMModelNumber     if ([string]::IsNullOrEmpty($oemModelNumber)) {         Write-Warning "OEMModelNumber boş"         $oemModelNumber = "Bilinmiyor"     }     Write-Host "OEM Model Numarası: $oemModelNumber" } catch {     Write-Warning "OEMModelNumber kayıt defteri anahtarı bulunamadı veya erişilemez"     $oemModelNumber = $null     Write-Host "OEM Model Numarası: Kullanılamıyor" }

# 12. FirmwareVersion # PS Sürümü: Tümü | Yönetici: Gerekli olabilir | Sistem Gereksinimleri: Yok try {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name FirmwareVersion -ErrorAction Stop     $firmwareVersion = $regValue.FirmwareVersion     if ([string]::IsNullOrEmpty($firmwareVersion)) {         Write-Warning "FirmwareVersion boş"         $firmwareVersion = "Bilinmiyor"     }     Write-Host "Üretici Yazılımı Sürümü: $firmwareVersion" } catch {     Write-Warning "FirmwareVersion kayıt defteri anahtarı bulunamadı veya erişilemez"     $firmwareVersion = $null     Write-Host "Üretici Yazılımı Sürümü: Kullanılamıyor" }

# 13. FirmwareReleaseDate # PS Sürümü: Tümü | Yönetici: Gerekli olabilir | Sistem Gereksinimleri: Yok try {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name FirmwareReleaseDate -ErrorAction Stop     $firmwareReleaseDate = $regValue.FirmwareReleaseDate     if ([string]::IsNullOrEmpty($firmwareReleaseDate)) {         Write-Warning "FirmwareReleaseDate boş"         $firmwareReleaseDate = "Bilinmiyor"     }     Write-Host "Üretici Yazılımı Sürüm Tarihi: $firmwareReleaseDate" } catch {     Write-Warning "FirmwareReleaseDate kayıt defteri anahtarı bulunamadı veya erişilemez"     $firmwareReleaseDate = $null     Write-Host "Üretici Yazılımı Sürüm Tarihi: Kullanılamıyor" }

# 14. OSArchitecture # PS Sürümü: Tümü | Yönetici: Hayır | Sistem Gereksinimleri: Yok try {     $osArchitecture = $env:PROCESSOR_ARCHITECTURE     if ([string]::IsNullOrEmpty($osArchitecture)) {         # Kayıt defteri geri dönüşünü deneyin         $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OSArchitecture -ErrorAction Stop         $osArchitecture = $regValue.OSArchitecture     }     if ([string]::IsNullOrEmpty($osArchitecture)) {         Write-Warning "OSArchitecture belirlenemedi"         $osArchitecture = "Bilinmiyor"     }     Write-Host "İşletim Sistemi Mimarisi: $osArchitecture" } catch {     Write-Warning "OSArchitecture alınırken hata oluştu: $_"     $osArchitecture = "Bilinmiyor"     Write-Host "İs Mimarisi: $osArchitecture" }

# 15. CanAttemptUpdateAfter (FILETIME) # PS Sürümü: Tümü | Yönetici: Gerekli olabilir | Sistem Gereksinimleri: Yok try {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name CanAttemptUpdateAfter -ErrorAction Stop     $canAttemptUpdateAfter = $regValue.CanAttemptUpdateAfter     # Geçerli bir sayıysa FILETIME'ı DateTime'a dönüştür     if ($null -ne $canAttemptUpdateAfter -ve $canAttemptUpdateAfter -is [long]) {         try {             $canAttemptUpdateAfter = [DateTime]::FromFileTime($canAttemptUpdateAfter)         } catch {             Write-Warning "CanAttemptUpdateAfter FILETIME, DateTime'a dönüştürülemedi"         }     }     Write-Host "GüncelleştirmeDen Sonra Denenebilir: $canAttemptUpdateAfter" } catch {     Write-Warning "CanAttemptUpdateAfter kayıt defteri anahtarı bulunamadı veya erişilemez"     $canAttemptUpdateAfter = $null     Write-Host "GüncelleştirmeDen Sonra Denenebilir: Kullanılamıyor" }

# Event Logs: System Log (5 values)

# 16-20. Event Log queries # PS Sürümü: 3.0+ | Yönetici: Sistem günlüğü için gerekli olabilir | Sistem Gereksinimleri: Yok try {     $allEventIds = @(1801, 1808)     $events = @(Get-WinEvent -FilterHashtable @{LogName='System'; ID=$allEventIds} -MaxEvents 20 -ErrorAction Stop)

    if ($events.Count -eq 0) {         Write-Warning "Sistem günlüğünde Güvenli Önyükleme olayı (1801/1808) bulunamadı"         $latestEventId = $null         $bucketId = $null         $confidence = $null         $event 1801Count = 0         $event 1808Count = 0         Write-Host "En Son Olay Kimliği: Kullanılamıyor"         Write-Host "Demet Kimliği: Kullanılamıyor"         Write-Host "Güvenilirlik: Kullanılamıyor"         Write-Host "Olay 1801 Sayısı: 0"         Write-Host "Olay 1808 Sayısı: 0"     } else {         # 16. LatestEventId         $latestEvent = $events | Sort-Object TimeCreated -Descending | Select-Object -İlk 1         if ($null -eq $latestEvent) {             Write-Warning "En son olay belirlenemedi"             $latestEventId = $null             Write-Host "En Son Olay Kimliği: Kullanılamıyor"         } else {             $latestEventId = $latestEvent.Id             Write-Host "En Son Olay Kimliği: $latestEventId"         }

        # 17. BucketID - Extracted from Event 1801/1808 if ($null -ne $latestEvent -and $null -ne $latestEvent.Message) {             if ($latestEvent.Message -match 'BucketId:\s*(.+)') {                 $bucketId = $matches[1]. Trim()                 Write-Host "Demet Kimliği: $bucketId"             } else {                 Write-Warning "BucketId olay iletisinde bulunamadı"                 $bucketId = $null                 Write-Host "Demet Kimliği: Olayda Bulunamadı"             }         } else {             Write-Warning "En son olay veya ileti null, BucketId ayıklanamıyor"             $bucketId = $null             Write-Host "Demet Kimliği: Kullanılamıyor"         }

        # 18. Confidence - Extracted from Event 1801/1808 if ($null -ne $latestEvent -and $null -ne $latestEvent.Message) {             if ($latestEvent.Message -match 'BucketConfidenceLevel:\s*(.+)') {                 $confidence = $matches[1]. Trim()                 Write-Host "Güvenilirlik: $confidence"             } else {                 Write-Warning "Olay iletisinde güvenilirlik düzeyi bulunamadı"                 $confidence = $null                 Write-Host "Güvenilirlik: Olayda Bulunamadı"             }         } else {             Write-Warning "En son olay veya ileti null, Güvenilirlik ayıklanamıyor"             $confidence = $null             Write-Host "Güvenilirlik: Kullanılamıyor"         }

        # 19. Event1801Count $event 1801Array = @($events | Where-Object {$_. Id -eq 1801})         $event 1801Count = $event 1801Array.Count         Write-Host "Olay 1801 Sayısı: $event 1801Count"

        # 20. Event1808Count $event 1808Array = @($events | Where-Object {$_. Id -eq 1808})         $event 1808Count = $event 1808Array.Count         Write-Host "Olay 1808 Sayısı: $event 1808Count"     } } catch {     Write-Warning "Olay günlükleri alınırken hata oluştu. Yönetici ayrıcalıkları gerektirebilir: $_"     $latestEventId = $null     $bucketId = $null     $confidence = $null     $event 1801Count = 0     $event 1808Count = 0     Write-Host "En Son Olay Kimliği: Hata"     Write-Host "Demet Kimliği: Hata"     Write-Host "Güvenilirlik: Hata"     Write-Host "Olay 1801 Sayısı: 0"     Write-Host "Olay 1808 Sayısı: 0" }

# WMI/CIM Queries (4 values)

# 21. OSVersion # PS Sürümü: 3.0+ (2.0 için Get-WmiObject kullanın) | Yönetici: Hayır | Sistem Gereksinimleri: Yok try {     $osInfo = Get-CimInstance Win32_OperatingSystem -ErrorAction Stop     if ($null -eq $osInfo -veya [string]::IsNullOrEmpty($osInfo.Version)) {         Write-Warning "İşletim sistemi sürümü alınamadı"         $osVersion = "Bilinmiyor"     } else {         $osVersion = $osInfo.Version     }     Write-Host "İşletim Sistemi Sürümü: $osVersion" } catch {     Write-Warning "İşletim sistemi sürümü alınırken hata oluştu: $_"     $osVersion = "Bilinmiyor"     Write-Host "İşletim Sistemi Sürümü: $osVersion" }

# 22. LastBootTime # PS Sürümü: 3.0+ (2.0 için Get-WmiObject kullanın) | Yönetici: Hayır | Sistem Gereksinimleri: Yok try {     $osInfo = Get-CimInstance Win32_OperatingSystem -ErrorAction Stop     if ($null -eq $osInfo -veya $null -eq $osInfo.LastBootUpTime) {         Write-Warning "Son önyükleme zamanı alınamadı"         $lastBootTime = $null         Write-Host "Son Önyükleme Zamanı: Kullanılamıyor"     } else {         $lastBootTime = $osInfo.LastBootUpTime         Write-Host "Son Önyükleme Zamanı: $lastBootTime"     } } catch {     Write-Warning "Son önyükleme zamanı alınırken hata oluştu: $_"     $lastBootTime = $null     Write-Host "Son Önyükleme Zamanı: Kullanılamıyor" }

# 23. BaseBoardManufacturer # PS Sürümü: 3.0+ (2.0 için Get-WmiObject kullanın) | Yönetici: Hayır | Sistem Gereksinimleri: Yok try {     $baseBoard = Get-CimInstance Win32_BaseBoard -ErrorAction Stop     if ($null -eq $baseBoard -veya [string]::IsNullOrEmpty($baseBoard.Manufacturer)) {         Write-Warning "Temel kart üreticisi alınamadı"         $baseBoardManufacturer = "Bilinmiyor"     } else {         $baseBoardManufacturer = $baseBoard.Manufacturer     }     Write-Host "Temel Kart Üreticisi: $baseBoardManufacturer" } catch {     Write-Warning "Temel kart üreticisi alınırken hata oluştu: $_"     $baseBoardManufacturer = "Bilinmiyor"     Write-Host "Temel Kart Üreticisi: $baseBoardManufacturer" }

# 24. BaseBoardProduct # PS Sürümü: 3.0+ (2.0 için Get-WmiObject kullanın) | Yönetici: Hayır | Sistem Gereksinimleri: Yok try {     $baseBoard = Get-CimInstance Win32_BaseBoard -ErrorAction Stop     if ($null -eq $baseBoard -veya [string]::IsNullOrEmpty($baseBoard.Product)) {         Write-Warning "Temel kart ürünü alınamadı"         $baseBoardProduct = "Bilinmiyor"     } else {         $baseBoardProduct = $baseBoard.Product     }     Write-Host "Temel Kart Ürünü: $baseBoardProduct" } catch {     Write-Warning "Temel kart ürünü alınırken hata oluştu: $_"     $baseBoardProduct = "Bilinmiyor"     Write-Host "Temel Kart Ürünü: $baseBoardProduct"}

Daha fazla yardıma mı ihtiyacınız var?

Daha fazla seçenek mi istiyorsunuz?

Abonelik avantajlarını keşfedin, eğitim kurslarına göz atın, cihazınızın güvenliğini nasıl sağlayacağınızı öğrenin ve daha fazlasını yapın.