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"}