Datum izvirne objave: 17. november 2025
ID zbirke znanja: 5072718
Sample Secure Boot Inventory Data Collection script
Kopirajte in prilepite ta vzorčni skript ter ga po potrebi spremenite za svoje okolje: Skript za zbiranje podatkov vzorčnega inventarja varnega zagona.
Sample_Secure_Boot_Inventory_Data_Collection_script
# 1. HostName # PS Version: All | Skrbnik: Ne | Sistemske zahteve: Brez poskusite { $hostname = $env:COMPUTERNAME if ([string]::IsNullOrEmpty($hostname)) { Write-Warning »Imena gostitelja ni bilo mogoče določiti« $hostname = "Neznano" } (v 2 Write-Host »Hostname: $hostname« (Ime gostitelja: $hostname) } ulova { Write-Warning »Napaka pri pridobivanju imena gostitelja: $_« $hostname = »Napaka« Write-Host »Hostname: $hostname« (Ime gostitelja: $hostname) }
# 2. CollectionTime # PS Version: All | Skrbnik: Ne | Sistemske zahteve: Brez poskusite { $collectionTime = Get-Date if ($null -eq $collectionTime) { Write-Warning »Trenutnega datuma/časa ni bilo mogoče pridobiti« $collectionTime = »Neznano« } (v 2 Write-Host »Čas zbirke: $collectionTime« } ulova { Write-Warning »Napaka pri pridobivanju datuma/časa: $_« $collectionTime = »Napaka« Write-Host »Čas zbirke: $collectionTime« }
# Registry: Secure Boot Main Key (3 values)
# 3. SecureBootEnabled # PS Različica: 3.0+ | Skrbnik: Morda bo zahtevano | Sistemske zahteve: Sistem, ki podpira vmesnik UEFI/varni zagon poskusite { $secureBootEnabled = Confirm-SecureBootUEFI -ErrorAction Stop Write-Host »Secure Boot Enabled: $secureBootEnabled« } ulova { Write-Warning »Stanja varnega zagona prek ukaza »cmdlet« ni mogoče določiti: $_" # Poskusite z rezervnim registrom poskusite { $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\State" -Name UEFISecureBootEnabled -ErrorAction Stop $secureBootEnabled = [bool]$regValue.UEFISecureBootEnabled Write-Host »Secure Boot Enabled: $secureBootEnabled« } ulova { Write-Warning »Ni mogoče določiti stanja varnega zagona prek registra. Sistem morda ne podpira vmesnika UEFI/varnega zagona.« $secureBootEnabled = $null Write-Host »Varni zagon omogočen: ni na voljo« } (v 2 }
# 4. HighConfidenceOptOut # PS Version: All | Skrbnik: Morda bo zahtevano | Sistemske zahteve: Brez poskusite { $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot" -Name HighConfidenceOptOut -ErrorAction Stop $highConfidenceOptOut = $regValue.HighConfidenceOptOut Write-Host »Zavrnitev zaupanja: $highConfidenceOptOut« } ulova { Write-Warning registrskega ključa »HighConfidenceOptOut ni mogoče najti ali nedostopen« $highConfidenceOptOut = $null Write-Host »Zavrnitev zaupanja: ni na voljo« }
# 5. AvailableUpdates # PS Version: All | Skrbnik: Morda bo zahtevano | Sistemske zahteve: Brez poskusite { $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot" -Name AvailableUpdates -ErrorAction Stop $availableUpdates = $regValue.AvailableUpdates če ($null -ne $availableUpdates) { # Pretvori v šestnajstiško obliko zapisa $availableUpdatesHex = "0x{0:X}" -f $availableUpdates Write-Host »Na voljo Posodobitve: $availableUpdatesHex« } drugo { Write-Host »Na voljo Posodobitve: Ni na voljo« } (v 2 } ulova { Write-Warning »Registrskega ključa AvailableUpdates ni bilo mogoče najti ali nedostopno« $availableUpdates = $null Write-Host »Na voljo Posodobitve: Ni na voljo« }
# Registry: Servicing Key (3 values)
# 6. UEFICA2023Status # PS Version: All | Skrbnik: Morda bo zahtevano | Sistemske zahteve: Brez poskusite { $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\Servicing" -Name UEFICA2023Status -ErrorAction Stop $uefica 2023Status = $regValue.UEFICA2023Status Write-Host »UEFI CA 2023 Status: $uefica 2023Status« } ulova { Write-Warning »Registrskega ključa UEFICA2023Status ni mogoče najti ali nedostopen« $uefica 2023Status = $null Write-Host »UEFI CA 2023 Status: Not Available« }
# 7. UEFICA2023Capable # PS Version: All | Skrbnik: Morda bo zahtevano | Sistemske zahteve: Brez poskusite { $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\Servicing" -Name UEFICA2023Capable -ErrorAction Stop $uefica 2023Capable = $regValue.UEFICA2023Capable Write-Host »UEFI CA 2023 Capable: $uefica 2023Capable« } ulova { Write-Warning »UEFICA2023Capable registry key not found or inaccessible« (Registrski ključ UEFICA2023 Ni mogoče najti ali nedostopen) $uefica 2023Capable = $null Write-Host »UEFI CA 2023 Capable: Not Available« }
# 8. UEFICA2023Error # PS Version: All | Skrbnik: Morda bo zahtevano | Sistemske zahteve: Brez poskusite { $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\Servicing" -Name UEFICA2023Error -ErrorAction Stop $uefica 2023Error = $regValue.UEFICA2023Error Write-Host »Napaka vmesnika UEFI CA 2023: $uefica 2023Napaka« } ulova { Write-Warning registrskega ključa »UEFICA2023Error ni mogoče najti ali nedostopen« $uefica 2023Napaka = $null Write-Host »Napaka vmesnika UEFI CA 2023: Ni na voljo« }
# Registry: Device Attributes (7 values)
# 9. OEMManufacturerName # PS Version: All | Skrbnik: Morda bo zahtevano | Sistemske zahteve: Brez poskusite { $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OEMManufacturerName -ErrorAction Stop $oemManufacturerName = $regValue.OEMManufacturerName if ([string]::IsNullOrEmpty($oemManufacturerName)) { Write-Warning »OEMManufacturerName je prazno« $oemManufacturerName = "Neznano" } (v 2 Write-Host »Ime proizvajalca strojne opreme: $oemManufacturerName« } ulova { Write-Warning registrskega ključa »OEMManufacturerName ni bilo mogoče najti ali nedostopno« $oemManufacturerName = $null Write-Host »Ime proizvajalca strojne opreme: Ni na voljo« }
# 10. OEMModelSystemFamily # PS Version: All | Skrbnik: Morda bo zahtevano | Sistemske zahteve: Brez poskusite { $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OEMModelSystemFamily -ErrorAction Stop $oemModelSystemFamily = $regValue.OEMModelSystemFamily if ([string]::IsNullOrEmpty($oemModelSystemFamily)) { Write-Warning »OEMModelSystemFamily je prazno« $oemModelSystemFamily = "Neznano" } (v 2 Write-Host »Družina modelov sistema OEM: $oemModelSystemFamily« } ulova { Write-Warning registrski ključ »OEMModelSystemFamily ni mogoče najti ali nedostopen« $oemModelSystemFamily = $null Write-Host »Družina sistema modelov OEM: Ni na voljo« }
# 11. OEMModelNumber # PS Version: All | Skrbnik: Morda bo zahtevano | Sistemske zahteve: Brez poskusite { $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OEMModelNumber -ErrorAction Stop $oemModelNumber = $regValue.OEMModelNumber if ([string]::IsNullOrEmpty($oemModelNumber)) { Write-Warning »OEMModelNumber je prazen« $oemModelNumber = "Neznano" } (v 2 Write-Host »Številka modela OEM: $oemModelNumber« } ulova { Write-Warning »Registrskega ključa OEMModelNumber ni mogoče najti ali nedostopen« $oemModelNumber = $null Write-Host »Številka modela OEM: Ni na voljo« }
# 12. FirmwareVersion # PS Version: All | Skrbnik: Morda bo zahtevano | Sistemske zahteve: Brez poskusite { $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name FirmwareVersion -ErrorAction Stop $firmwareVersion = $regValue.FirmwareVersion if ([string]::IsNullOrEmpty($firmwareVersion)) { Write-Warning »FirmwareVersion je prazen« $firmwareVersion = "Neznano" } (v 2 Write-Host »Različica vdelane programske opreme: $firmwareVersion« } ulova { Write-Warning »Registrskega ključa različice vdelane programske opreme ni mogoče najti ali nedostopen« $firmwareVersion = $null Write-Host »Različica vdelane programske opreme: ni na voljo« }
# 13. FirmwareReleaseDate # PS Version: All | Skrbnik: Morda bo zahtevano | Sistemske zahteve: Brez poskusite { $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name FirmwareReleaseDate -ErrorAction Stop $firmwareReleaseDate = $regValue.FirmwareReleaseDate if ([string]::IsNullOrEmpty($firmwareReleaseDate)) { Write-Warning »FirmwareReleaseDate je prazen« $firmwareReleaseDate = »Neznano« } (v 2 Write-Host »Datum izdaje vdelane programske opreme: $firmwareReleaseDate« } ulova { Write-Warning »Registrskega ključa FirmwareReleaseDate ni bilo mogoče najti ali nedostopno« $firmwareReleaseDate = $null Write-Host »Datum izdaje vdelane programske opreme: ni na voljo« }
# 14. OSArchitecture # PS Version: All | Skrbnik: Ne | Sistemske zahteve: Brez poskusite { $osArchitecture = $env:PROCESSOR_ARCHITECTURE if ([string]::IsNullOrEmpty($osArchitecture)) { # Poskusite z rezervnim registrom $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OSArchitecture -ErrorAction Stop $osArchitecture = $regValue.OSArchitecture } (v 2 if ([string]::IsNullOrEmpty($osArchitecture)) { Write-Warning »OSArchitecture ni bilo mogoče določiti« $osArchitecture = »Neznano« } (v 2 Write-Host »Arhitektura operacijskega sistema: $osArchitecture« } ulova { Write-Warning »Napaka pri pridobivanju OSArchitecture: $_« $osArchitecture = »Neznano« Write-Host »Arhitektura operacijskega sistema: $osArchitecture« }
# 15. CanAttemptUpdateAfter (FILETIME) # PS Version: All | Skrbnik: Morda bo zahtevano | Sistemske zahteve: Brez poskusite { $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name CanAttemptUpdateAfter -ErrorAction Stop $canAttemptUpdateAfter = $regValue.CanAttemptUpdateAfter # Convert FILETIME to DateTime if it's a valid number if ($null -ne $canAttemptUpdateAfter -and $canAttemptUpdateAfter -is [long]) { poskusite { $canAttemptUpdateAfter = [DateTime]::FromFileTime($canAttemptUpdateAfter) } ulova { Write-Warning »CanAttemptUpdateAfter FILETIME ni mogoče pretvoriti v DateTime« } (v 2 } (v 2 Write-Host »Lahko poskusi posodobitev po: $canAttemptUpdateAfter« } ulova { Write-Warning »Registrskega ključa CanAttemptUpdateAfter ni bilo mogoče najti ali nedostopno« $canAttemptUpdateAfter = $null Write-Host »Lahko poskusi posodobitev po: ni na voljo« }
# Event Logs: System Log (5 values)
# 16-20. Event Log queries # PS Različica: 3.0+ | Skrbnik: Morda bo zahtevan za sistemski dnevnik | Sistemske zahteve: Brez poskusite { $allEventIds = @(1801, 1808) $events = @(Get-WinEvent -FilterHashtable @{LogName='System'; ID=$allEventIds} -MaxEvents 20 -ErrorAction Stop)
if ($events.Count -eq 0) { Write-Warning »V sistemskem dnevniku ni najdenih dogodkov varnega zagona (1801/1808) « $latestEventId = $null $bucketId = $null $confidence = $null $event 1801Count = 0 $event 1808Count = 0 Write-Host »Latest Event ID: Not available« (Najnovejši ID dogodka: Ni na voljo) Write-Host »ID vedra: Ni na voljo« Write-Host »Zaupanje: ni na voljo« Write-Host »Event 1801 Count: 0« Write-Host »Event 1808 Count: 0« } drugo { # 16. LatestEventId $latestEvent = $events | Sort-Object TimeCreated -Descending | Select-Object – prvi 1 if ($null -eq $latestEvent) { Write-Warning »Najnovejšega dogodka ni bilo mogoče določiti« $latestEventId = $null Write-Host »Latest Event ID: Not available« (Najnovejši ID dogodka: ni na voljo) } drugo { $latestEventId = $latestEvent.Id Write-Host »Latest Event ID: $latestEventId« (Najnovejši ID dogodka: $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 »ID vedra: $bucketId« } drugo { Write-Warning »Id Vedra ni mogoče najti v sporočilu dogodka« $bucketId = $null Write-Host »ID vedra: Ni mogoče najti v dogodku« } (v 2 } drugo { Write-Warning »Latest event or message is null, cannot extract BucketId« (Najnovejši dogodek ali sporočilo je ničelno, ni mogoče ekstrahirati BucketId) $bucketId = $null Write-Host »ID vedra: ni na voljo« }
# 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 »Confidence: $confidence« } drugo { Write-Warning »Ravni zaupanja ni mogoče najti v sporočilu dogodka« $confidence = $null Write-Host »Confidence: Not Found in Event« (Zaupanja ni mogoče najti v dogodku) } (v 2 } drugo { Write-Warning »Zadnji dogodek ali sporočilo je ničelno, ni mogoče ekstrahirati zaupanja« $confidence = $null Write-Host »Zaupanje: ni na voljo« }
# 19. Event1801Count $event 1801Array = @($events | Where-Object {$_. ID –eq 1801}) $event 1801Count = $event 1801Array.Count Write-Host »Event 1801 Count: $event 1801Count«
# 20. Event1808Count $event 1808Array = @($events | Where-Object {$_. ID –eq 1808}) $event 1808Count = $event 1808Array.Count Write-Host »Event 1808 Count: $event 1808Count« } (v 2 } ulova { Write-Warning »Napaka pri pridobivanju dnevnikov dogodkov. Morda boste morali zahtevati skrbniške pravice: $_" $latestEventId = $null $bucketId = $null $confidence = $null $event 1801Count = 0 $event 1808Count = 0 Write-Host »Latest Event ID: Error« (Najnovejši ID dogodka: napaka) Write-Host »ID vedra: napaka« Write-Host »Zaupanje: napaka« Write-Host »Event 1801 Count: 0« Write-Host »Event 1808 Count: 0« }
# WMI/CIM Queries (4 values)
# 21. OSVersion # PS Različica: 3.0+ (uporabite Get-WmiObject za 2.0) | Skrbnik: Ne | Sistemske zahteve: Brez poskusite { $osInfo = Get-CimInstance Win32_OperatingSystem -ErrorAction Stop if ($null -eq $osInfo -or [string]::IsNullOrEmpty($osInfo.Version)) { Write-Warning »Različice operacijskega sistema ni bilo mogoče pridobiti« $osVersion = "Neznano" } drugo { $osVersion = $osInfo.Version } (v 2 Write-Host »Različica operacijskega sistema: $osVersion« } ulova { Write-Warning »Napaka pri pridobivanju različice operacijskega sistema: $_« $osVersion = »Neznano« Write-Host »Različica operacijskega sistema: $osVersion« }
# 22. LastBootTime # PS Različica: 3.0+ (uporabite Get-WmiObject za 2.0) | Skrbnik: Ne | Sistemske zahteve: Brez poskusite { $osInfo = Get-CimInstance Win32_OperatingSystem -ErrorAction Stop if ($null -eq $osInfo -or $null -eq $osInfo.LastBootUpTime) { Write-Warning »Čas zadnjega zagona ni bil mogoče pridobiti« $lastBootTime = $null Write-Host »Čas zadnjega zagona: ni na voljo« } drugo { $lastBootTime = $osInfo.LastBootUpTime Write-Host »Čas zadnjega zagona: $lastBootTime« } (v 2 } ulova { Write-Warning »Napaka pri pridobivanju časa zadnjega zagona: $_« $lastBootTime = $null Write-Host »Čas zadnjega zagona: ni na voljo« }
# 23. BaseBoardManufacturer # PS Različica: 3.0+ (uporabite Get-WmiObject za 2.0) | Skrbnik: Ne | Sistemske zahteve: Brez poskusite { $baseBoard = Get-CimInstance Win32_BaseBoard -ErrorAction Stop if ($null -eq $baseBoard -or [string]::IsNullOrEmpty($baseBoard.Manufacturer)) { Write-Warning »proizvajalca osnovne plošče ni bilo mogoče pridobiti« $baseBoardManufacturer = "Neznano" } drugo { $baseBoardManufacturer = $baseBoard.Manufacturer } (v 2 Write-Host »Proizvajalec osnovne plošče: $baseBoardManufacturer« } ulova { Write-Warning »Napaka pri pridobivanju izdelovalca osnovne plošče: $_« $baseBoardManufacturer = »Neznano« Write-Host »Proizvajalec osnovne plošče: $baseBoardManufacturer« }
# 24. BaseBoardProduct # PS Različica: 3.0+ (uporabite Get-WmiObject za 2.0) | Skrbnik: Ne | Sistemske zahteve: Brez poskusite { $baseBoard = Get-CimInstance Win32_BaseBoard -ErrorAction Stop if ($null -eq $baseBoard -or [string]::IsNullOrEmpty($baseBoard.Product)) { Write-Warning »izdelka baseboard ni bilo mogoče pridobiti« $baseBoardProduct = "Neznano" } drugo { $baseBoardProduct = $baseBoard.Izdelek } (v 2 Write-Host »Izdelek na osnovni plošči: $baseBoardProduct« } ulova { Write-Warning »Napaka pri pridobivanju izdelka osnovne plošče: $_« $baseBoardProduct = »Neznano« Write-Host »Izdelek baseboard: $baseBoardProduct«}