Berlaku Untuk
Windows 10 Windows 10, version 1607, all editions Windows 10 Enterprise 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

Tanggal penerbitan asli: 17 November 2025

ID KB: 5072718

Sampel skrip Pengumpulan Data Inventori Boot Aman

Salin dan tempelkan contoh skrip ini dan ubah sesuai kebutuhan untuk lingkungan Anda: Sampel skrip Pengumpulan Data Boot Aman.

Sample_Secure_Boot_Inventory_Data_Collection_script

# 1. HostName # Versi PS: Semua | Admin: Tidak | Persyaratan Sistem: Tidak Ada coba {     $hostname = $env:COMPUTERNAME     if ([string]:::IsNullOrEmpty($hostname)) {         Write-Warning "Nama host tidak dapat ditentukan"         $hostname = "Tidak Diketahui"     }     Write-Host "Nama host: $hostname" } tangkap {     Write-Warning "Kesalahan mengambil nama host: $_"     $hostname = "Kesalahan"     Write-Host "Nama host: $hostname" }

# 2. CollectionTime # Versi PS: Semua | Admin: Tidak | Persyaratan Sistem: Tidak Ada coba {     $collectionTime = Get-Date     if ($null -eq $collectionTime) {         Write-Warning "Tidak dapat mengambil tanggal/waktu saat ini"         $collectionTime = "Tidak Diketahui"     }     Write-Host "Waktu Koleksi: $collectionTime" } tangkap {     Write-Warning "Kesalahan mengambil tanggal/waktu: $_"     $collectionTime = "Kesalahan"     Write-Host "Waktu Koleksi: $collectionTime" }

# Registry: Secure Boot Main Key (3 values)

# 3. SecureBootEnabled # Versi PS: 3.0+ | Admin: Mungkin diperlukan | Persyaratan Sistem: UEFI/Sistem berkemampuan Boot Aman coba {     $secureBootEnabled = Confirm-SecureBootUEFI -ErrorAction Stop     Write-Host "Secure Boot Enabled: $secureBootEnabled" } tangkap {     Write-Warning "Tidak dapat menentukan status Boot Aman melalui cmdlet: $_"     # Coba registri fallback     coba {         $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\State" -Name UEFISecureBootEnabled -ErrorAction Stop         $secureBootEnabled = [bool]$regValue.UEFISecureBootEnabled         Write-Host "Boot Aman Diaktifkan: $secureBootEnabled"     } tangkap {         Write-Warning "Tidak dapat menentukan status Boot Aman melalui registri. Sistem mungkin tidak mendukung UEFI/Secure Boot."         $secureBootEnabled = $null         Write-Host "Boot Aman Diaktifkan: Tidak Tersedia"     } }

# 4. HighConfidenceOptOut # Versi PS: Semua | Admin: Mungkin diperlukan | Persyaratan Sistem: Tidak Ada coba {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot" -Name HighConfidenceOptOut -ErrorAction Stop     $highConfidenceOptOut = $regValue.HighConfidenceOptOut     Write-Host "Kepercayaan Diri Tinggi Menolak: $highConfidenceOptOut" } tangkap {     Write-Warning "Kunci registri HighConfidenceOptOut tidak ditemukan atau tidak dapat diakses"     $highConfidenceOptOut = $null     Write-Host "Kepercayaan Diri Tinggi Menolak: Tidak Tersedia" }

# 5. AvailableUpdates # Versi PS: Semua | Admin: Mungkin diperlukan | Persyaratan Sistem: Tidak Ada coba {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot" -Name AvailableUpdates -ErrorAction Stop     $availableUpdates = $regValue.AvailableUpdates     if ($null -ne $availableUpdates) {         # Konversi ke format heksadesimal         $availableUpdatesHex = "0x{0:X}" -f $availableUpdates         Write-Host "Updates tersedia: $availableUpdatesHex"     } lain {         Write-Host "Updates tersedia: Tidak Tersedia"     } } tangkap {     Write-Warning "AvailableUpdates kunci registri tidak ditemukan atau tidak dapat diakses"     $availableUpdates = $null     Write-Host "Updates tersedia: Tidak Tersedia" }

# Registry: Servicing Key (3 values)

# 6. UEFICA2023Status # Versi PS: Semua | Admin: Mungkin diperlukan | Persyaratan Sistem: Tidak Ada coba {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\Servicing" -Name UEFICA2023Status -ErrorAction Stop     $uefica 2023Status = $regValue.UEFICA2023Status     Write-Host "Status UEFI CA 2023: $uefica 2023Status" } tangkap {     Write-Warning "UEFICA2023Status kunci registri tidak ditemukan atau tidak dapat diakses"     $uefica 2023Status = $null     Write-Host "Status UEFI CA 2023: Tidak Tersedia" }

# 7. UEFICA2023Capable # Versi PS: Semua | Admin: Mungkin diperlukan | Persyaratan Sistem: Tidak Ada coba {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\Servicing" -Name UEFICA2023Capable -ErrorAction Stop     $uefica 2023Capable = $regValue.UEFICA2023Capable     Write-Host "UEFI CA 2023 Mampu: $uefica 2023 Mampu" } tangkap {     Write-Warning "UEFICA2023Dapat kunci registri tidak ditemukan atau tidak dapat diakses"     $uefica 2023Capable = $null     Write-Host "UEFI CA 2023 Mampu: Tidak Tersedia" }

# 8. UEFICA2023Error # Versi PS: Semua | Admin: Mungkin diperlukan | Persyaratan Sistem: Tidak Ada coba {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\Servicing" -Name UEFICA2023Error -ErrorAction Stop     $uefica 2023Error = $regValue.UEFICA2023Error     Write-Host "Kesalahan UEFI CA 2023: $uefica 2023Error" } tangkap {     Write-Warning "UEFICA2023Error kunci registri tidak ditemukan atau tidak dapat diakses"     $uefica 2023Error = $null     Write-Host "Kesalahan UEFI CA 2023: Tidak Tersedia" }

# Registry: Device Attributes (7 values)

# 9. OEMManufacturerName # Versi PS: Semua | Admin: Mungkin diperlukan | Persyaratan Sistem: Tidak Ada coba {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OEMManufacturerName -ErrorAction Stop     $oemManufacturerName = $regValue.OEMManufacturerName     if ([string]:::IsNullOrEmpty($oemManufacturerName)) {         Write-Warning "OEMManufacturerName kosong"         $oemManufacturerName = "Tidak Diketahui"     }     Write-Host "OEM Manufacturer Name: $oemManufacturerName" } tangkap {     Write-Warning "OEMManufacturerName kunci registri tidak ditemukan atau tidak dapat diakses"     $oemManufacturerName = $null     Write-Host "OEM Manufacturer Name: Not Available" }

# 10. OEMModelSystemFamily # Versi PS: Semua | Admin: Mungkin diperlukan | Persyaratan Sistem: Tidak Ada coba {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OEMModelSystemFamily -ErrorAction Stop     $oemModelSystemFamily = $regValue.OEMModelSystemFamily     if ([string]:::IsNullOrEmpty($oemModelSystemFamily)) {         Write-Warning "OEMModelSystemFamily kosong"         $oemModelSystemFamily = "Tidak Diketahui"     }     Write-Host "OEM Model System Family: $oemModelSystemFamily" } tangkap {     Write-Warning "OEMModelSystemFamily registri key not found or inaccessible"     $oemModelSystemFamily = $null     Write-Host "OEM Model System Family: Not Available" }

# 11. OEMModelNumber # Versi PS: Semua | Admin: Mungkin diperlukan | Persyaratan Sistem: Tidak Ada coba {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OEMModelNumber -ErrorAction Stop     $oemModelNumber = $regValue.OEMModelNumber     if ([string]:::IsNullOrEmpty($oemModelNumber)) {         Write-Warning "OEMModelNumber kosong"         $oemModelNumber = "Tidak Diketahui"     }     Write-Host "Nomor Model OEM: $oemModelNumber" } tangkap {     Write-Warning "OEMModelNumber kunci registri tidak ditemukan atau tidak dapat diakses"     $oemModelNumber = $null     Write-Host "Nomor Model OEM: Tidak Tersedia" }

# 12. FirmwareVersion # Versi PS: Semua | Admin: Mungkin diperlukan | Persyaratan Sistem: Tidak Ada coba {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name FirmwareVersion -ErrorAction Stop     $firmwareVersion = $regValue.FirmwareVersion     if ([string]:::IsNullOrEmpty($firmwareVersion)) {         Write-Warning "FirmwareVersion kosong"         $firmwareVersion = "Tidak Diketahui"     }     Write-Host "Versi Firmware: $firmwareVersion" } tangkap {     Write-Warning "Kunci registri FirmwareVersion tidak ditemukan atau tidak dapat diakses"     $firmwareVersion = $null     Write-Host "Versi Firmware: Tidak Tersedia" }

# 13. FirmwareReleaseDate # Versi PS: Semua | Admin: Mungkin diperlukan | Persyaratan Sistem: Tidak Ada coba {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name FirmwareReleaseDate -ErrorAction Stop     $firmwareReleaseDate = $regValue.FirmwareReleaseDate     if ([string]:::IsNullOrEmpty($firmwareReleaseDate)) {         Write-Warning "FirmwareReleaseDate kosong"         $firmwareReleaseDate = "Tidak Diketahui"     }     Write-Host "Tanggal Rilis Firmware: $firmwareReleaseDate" } tangkap {     Write-Warning "FirmwareReleaseDate kunci registri tidak ditemukan atau tidak dapat diakses"     $firmwareReleaseDate = $null     Write-Host "Tanggal Rilis Firmware: Tidak Tersedia" }

# 14. OSArchitecture # Versi PS: Semua | Admin: Tidak | Persyaratan Sistem: Tidak Ada coba {     $osArchitecture = $env:PROCESSOR_ARCHITECTURE     if ([string]:::IsNullOrEmpty($osArchitecture)) {         # Coba registri fallback         $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OSArchitecture -ErrorAction Stop         $osArchitecture = $regValue.OSArchitecture     }     if ([string]:::IsNullOrEmpty($osArchitecture)) {         Write-Warning "OSArchitecture tidak dapat ditentukan"         $osArchitecture = "Tidak Diketahui"     }     Write-Host "Arsitektur OS: $osArchitecture" } tangkap {     Write-Warning "Kesalahan dalam mengambil OSArchitecture: $_"     $osArchitecture = "Tidak Diketahui"     Write-Host "Arsitektur OS: $osArchitecture" }

# 15. CanAttemptUpdateAfter (FILETIME) # Versi PS: Semua | Admin: Mungkin diperlukan | Persyaratan Sistem: Tidak Ada coba {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name CanAttemptUpdateAfter -ErrorAction Stop     $canAttemptUpdateAfter = $regValue.CanAttemptUpdateAfter     # Konversi FILETIME ke DateTime jika itu adalah angka yang valid     if ($null -ne $canAttemptUpdateAfter -and $canAttemptUpdateAfter -is [long]) {         coba {             $canAttemptUpdateAfter = [DateTime]::FromFileTime($canAttemptUpdateAfter)         } tangkap {             Write-Warning "Tidak dapat mengonversi CanAttemptUpdateAfter FILETIME ke DateTime"         }     }     Write-Host "Dapat Mencoba Memperbarui Setelah: $canAttemptUpdateAfter" } tangkap {     Write-Warning "CanAttemptUpdateAfter kunci registri tidak ditemukan atau tidak dapat diakses"     $canAttemptUpdateAfter = $null     Write-Host "Dapat Mencoba Memperbarui Setelah: Tidak Tersedia" }

# Event Logs: System Log (5 values)

# 16-20. Event Log queries # Versi PS: 3.0+ | Admin: Mungkin diperlukan untuk Log sistem | Persyaratan Sistem: Tidak Ada coba {     $allEventIds = @(1801, 1808)     $events = @(Get-winEvent -FilterHashtable @{LogName='System'; ID=$allEventIds} -MaxEvents 20 -ErrorAction Stop)

    if ($events.Count -eq 0) {         Write-Warning "Tidak ada kejadian Boot Aman (1801/1808) yang ditemukan di log Sistem"         $latestEventId = $null         $bucketId = $null         $confidence = $null         $event 1801Count = 0         $event 1808Count = 0         Write-Host "ID Acara Terbaru: Tidak Tersedia"         Write-Host "ID Wadah: Tidak Tersedia"         Write-Host "Kepercayaan Diri: Tidak Tersedia"         Write-Host "Event 1801 Count: 0"         Write-Host "Event 1808 Count: 0"     } lain {         # 16. LatestEventId         $latestEvent = $events | Sort-Object TimeCreated -Descending | Select-Object -1 Pertama         if ($null -eq $latestEvent) {             Write-Warning "Tidak dapat menentukan acara terbaru"             $latestEventId = $null             Write-Host "ID Acara Terbaru: Tidak Tersedia"         } lain {             $latestEventId = $latestEvent.Id             Write-Host "ID Acara Terbaru: $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]. Pangkas()                 Write-Host "ID Bucket: $bucketId"             } lain {                 Write-Warning "BucketId tidak ditemukan dalam pesan acara"                 $bucketId = $null                 Write-Host "BUCKET ID: Not Found in Event"             }         } lain {             Write-Warning "Acara atau pesan terbaru adalah null, tidak dapat mengekstrak BucketId"             $bucketId = $null             Write-Host "ID Wadah: Tidak Tersedia"         }

        # 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]. Pangkas()                 Write-Host "Kepercayaan Diri: $confidence"             } lain {                 Write-Warning "Tingkat kepercayaan tidak ditemukan dalam pesan acara"                 $confidence = $null                 Write-Host "Kepercayaan Diri: Tidak Ditemukan dalam Kejadian"             }         } lain {             Write-Warning "Acara atau pesan terbaru adalah null, tidak dapat mengekstrak Kepercayaan Diri"             $confidence = $null             Write-Host "Kepercayaan Diri: Tidak Tersedia"         }

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

        # 20. Event1808Count $event 1808Array = @($events | Where-Object {$_. Id -eq 1808})         $event 1808Count = $event 1808Array.Count         Write-Host "Hitungan Acara 1808: $event 1808Count"     } } tangkap {     Write-Warning "Kesalahan mengambil log kejadian. Mungkin memerlukan hak istimewa administrator: $_"     $latestEventId = $null     $bucketId = $null     $confidence = $null     $event 1801Count = 0     $event 1808Count = 0     Write-Host "ID Kejadian Terbaru: Kesalahan"     Write-Host "ID Wadah: Kesalahan"     Write-Host "Kepercayaan Diri: Kesalahan"     Write-Host "Event 1801 Count: 0"     Write-Host "Event 1808 Count: 0" }

# WMI/CIM Queries (4 values)

# 21. OSVersion # Versi PS: 3.0+ (gunakan Get-WmiObject untuk 2.0) | Admin: Tidak | Persyaratan Sistem: Tidak Ada coba {     $osInfo = Get-CimInstance Win32_OperatingSystem -ErrorAction Stop     if ($null -eq $osInfo -or [string]::IsNullOrEmpty($osInfo.Version)) {         Write-Warning "Tidak dapat mengambil versi OS"         $osVersion = "Tidak Diketahui"     } lain {         $osVersion = $osInfo.Version     }     Write-Host "Versi OS: $osVersion" } tangkap {     Write-Warning "Kesalahan dalam mengambil versi OS: $_"     $osVersion = "Tidak Diketahui"     Write-Host "Versi OS: $osVersion" }

# 22. LastBootTime # Versi PS: 3.0+ (gunakan Get-WmiObject untuk 2.0) | Admin: Tidak | Persyaratan Sistem: Tidak Ada coba {     $osInfo = Get-CimInstance Win32_OperatingSystem -ErrorAction Stop     if ($null -eq $osInfo -or $null -eq $osInfo.LastBootUpTime) {         Write-Warning "Tidak dapat mengambil waktu boot terakhir"         $lastBootTime = $null         Write-Host "Waktu Boot Terakhir: Tidak Tersedia"     } lain {         $lastBootTime = $osInfo.LastBootUpTime         Write-Host "Waktu Boot Terakhir: $lastBootTime"     } } tangkap {     Write-Warning "Kesalahan saat mengambil waktu boot terakhir: $_"     $lastBootTime = $null     Write-Host "Waktu Boot Terakhir: Tidak Tersedia" }

# 23. BaseBoardManufacturer # Versi PS: 3.0+ (gunakan Get-WmiObject untuk 2.0) | Admin: Tidak | Persyaratan Sistem: Tidak Ada coba {     $baseBoard = Get-CimInstance Win32_BaseBoard -ErrorAction Stop     if ($null -eq $baseBoard -or [string]::IsNullOrEmpty($baseBoard.Manufacturer)) {         Write-Warning "Tidak dapat mengambil produsen baseboard"         $baseBoardManufacturer = "Tidak Diketahui"     } lain {         $baseBoardManufacturer = $baseBoard.Manufacturer     }     Write-Host "Produsen Baseboard: $baseBoardManufacturer" } tangkap {     Write-Warning "Kesalahan mengambil produsen baseboard: $_"     $baseBoardManufacturer = "Tidak Diketahui"     Write-Host "Produsen Baseboard: $baseBoardManufacturer" }

# 24. BaseBoardProduct # Versi PS: 3.0+ (gunakan Get-WmiObject untuk 2.0) | Admin: Tidak | Persyaratan Sistem: Tidak Ada coba {     $baseBoard = Get-CimInstance Win32_BaseBoard -ErrorAction Stop     if ($null -eq $baseBoard -or [string]::IsNullOrEmpty($baseBoard.Product)) {         Write-Warning "Tidak dapat mengambil produk baseboard"         $baseBoardProduct = "Tidak Diketahui"     } lain {         $baseBoardProduct = $baseBoard.Product     }     Write-Host "Produk Baseboard: $baseBoardProduct" } tangkap {     Write-Warning "Kesalahan mengambil produk baseboard: $_"     $baseBoardProduct = "Tidak Diketahui"     Write-Host "Produk Baseboard: $baseBoardProduct"}

Perlu bantuan lainnya?

Ingin opsi lainnya?

Jelajahi manfaat langganan, telusuri kursus pelatihan, pelajari cara mengamankan perangkat Anda, dan banyak lagi.