Izvorni datum objave: 17. studenog 2025.
KB ID: 5072718
Sample Secure Boot Inventory Data Collection script
Kopirajte i zalijepite tu oglednu skriptu i po potrebi izmijenite za svoje okruženje: skriptu zbirke podataka o oglednim inventarom sigurnog pokretanja.
Sample_Secure_Boot_Inventory_Data_Collection_script
# 1. HostName # PS verzija: Sve | Administrator: Ne | Sistemski preduvjeti: nema pokušajte { $hostname = $env:COMPUTERNAME if ([niz]::IsNullOrEmpty($hostname)) { Write-Warning "Nije moguće odrediti naziv glavnog računala" $hostname = "Nepoznato" Broj korisnika: } Write-Host "Naziv glavnog računala: $hostname" } uhvatiti { Write-Warning "Pogreška pri dohvaćanju naziva glavnog računala: $_" $hostname = "Pogreška" Write-Host "Naziv glavnog računala: $hostname" }
# 2. CollectionTime # PS verzija: Sve | Administrator: Ne | Sistemski preduvjeti: nema pokušajte { $collectionTime = Get-Date if ($null -eq $collectionTime) { Write-Warning "Nije moguće dohvatiti trenutni datum/vrijeme" $collectionTime = "Nepoznato" Broj korisnika: } Write-Host "Vrijeme prikupljanja: $collectionTime" } uhvatiti { Write-Warning "Pogreška pri dohvaćanju datuma/vremena: $_" $collectionTime = "Pogreška" Write-Host "Vrijeme prikupljanja: $collectionTime" }
# Registry: Secure Boot Main Key (3 values)
# 3. SecureBootEnabled # PS verzija: 3.0+ | Administrator: Možda je potrebno | Sistemski preduvjeti: sustav koji podržava UEFI/Secure Boot pokušajte { $secureBootEnabled = Confirm-SecureBootUEFI -ErrorAction Stop Write-Host "Omogućeno je sigurno pokretanje: $secureBootEnabled" } uhvatiti { Write-Warning "Nije moguće odrediti status sigurnog pokretanja putem cmdleta: $_" # Isprobajte rezervni registar pokušajte { $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\State" -Name UEFISecureBootEnabled -ErrorAction Stop $secureBootEnabled = [bool]$regValue.UEFISecureBootEnabled Write-Host "Omogućeno je sigurno pokretanje: $secureBootEnabled" } uhvatiti { Write-Warning "Nije moguće odrediti status sigurnog pokretanja putem registra. Sustav možda ne podržava UEFI/Secure Boot." $secureBootEnabled = $null Write-Host "Omogućeno je sigurno pokretanje: nije dostupno" Broj korisnika: } }
# 4. HighConfidenceOptOut # PS verzija: Sve | Administrator: Možda je potrebno | Sistemski preduvjeti: nema pokušajte { $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot" -Name HighConfidenceOptOut -ErrorAction Stop $highConfidenceOptOut = $regValue.HighConfidenceOptOut Write-Host "Odustajanje od visoke pouzdanosti: $highConfidenceOptOut" } uhvatiti { Write-Warning ključ registra HighConfidenceOptOut nije pronađen ili nije dostupan" $highConfidenceOptOut = $null Write-Host "Odustajanje od visoke pouzdanosti: nije dostupno" }
# 5. AvailableUpdates # PS verzija: Sve | Administrator: Možda je potrebno | Sistemski preduvjeti: nema pokušajte { $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot" -Name AvailableUpdates -ErrorAction Stop $availableUpdates = $regValue.AvailableUpdates if ($null -ne $availableUpdates) { # Pretvori u heksadecimalni oblik $availableUpdatesHex = "0x{0:X}" -f $availableUpdates Write-Host "Dostupno Ažuriranja: $availableUpdatesHex" } još { Write-Host "Dostupno Ažuriranja: nije dostupno" Broj korisnika: } } uhvatiti { Write-Warning "Ključ registra AvailableUpdates nije pronađen ili mu nije moguće pristupiti" $availableUpdates = $null Write-Host "Dostupno Ažuriranja: nije dostupno" }
# Registry: Servicing Key (3 values)
# 6. UEFICA2023Status # PS verzija: Sve | Administrator: Možda je potrebno | Sistemski preduvjeti: nema pokušajte { $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" } uhvatiti { Write-Warning ključ registra "UEFICA2023Status nije pronađen ili nije dostupan" $uefica 2023Status = $null Write-Host "UEFI CA 2023 Status: Not Available" }
# 7. UEFICA2023Capable # PS verzija: Sve | Administrator: Možda je potrebno | Sistemski preduvjeti: nema pokušajte { $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" } uhvatiti { Write-Warning ključ registra "UEFICA2023Capable nije pronađen ili nije dostupan" $uefica 2023Capable = $null Write-Host "UEFI CA 2023 capable: Not Available" }
# 8. UEFICA2023Error # PS verzija: Sve | Administrator: Možda je potrebno | Sistemski preduvjeti: nema pokušajte { $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\Servicing" -Name UEFICA2023Error -ErrorAction Stop $uefica 2023Pogreška = $regValue.UEFICA2023Error Write-Host pogreška "UEFI CA 2023: $uefica 2023Error" } uhvatiti { Write-Warning ključ registra "UEFICA2023Error nije pronađen ili nije dostupan" $uefica 2023Pogreška = $null Write-Host "Pogreška UEFI CA 2023: Nije dostupno" }
# Registry: Device Attributes (7 values)
# 9. OEMManufacturerName # PS verzija: Sve | Administrator: Možda je potrebno | Sistemski preduvjeti: nema pokušajte { $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OEMManufacturerName -ErrorAction Stop $oemManufacturerName = $regValue.OEMManufacturerName if ([niz]::IsNullOrEmpty($oemManufacturerName)) { Write-Warning "OEMManufacturerName je prazan" $oemManufacturerName = "Nepoznato" Broj korisnika: } Write-Host "Naziv proizvođača OEM-a: $oemManufacturerName" } uhvatiti { Write-Warning ključ registra "OEMManufacturerName nije pronađen ili nije dostupan" $oemManufacturerName = $null Write-Host "Naziv proizvođača OEM-a: nije dostupno" }
# 10. OEMModelSystemFamily # PS verzija: Sve | Administrator: Možda je potrebno | Sistemski preduvjeti: nema pokušajte { $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OEMModelSystemFamily -ErrorAction Stop $oemModelSystemFamily = $regValue.OEMModelSystemFamily if ([niz]::IsNullOrEmpty($oemModelSystemFamily)) { Write-Warning "OEMModelSystemFamily je prazan" $oemModelSystemFamily = "Nepoznato" Broj korisnika: } Write-Host "OEM Model System Family: $oemModelSystemFamily" } uhvatiti { Write-Warning ključ registra "OEMModelSystemFamily nije pronađen ili mu nije moguće pristupiti" $oemModelSystemFamily = $null Write-Host "OEM Model System Family: Not Available" }
# 11. OEMModelNumber # PS verzija: Sve | Administrator: Možda je potrebno | Sistemski preduvjeti: nema pokušajte { $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OEMModelNumber -ErrorAction Stop $oemModelNumber = $regValue.OEMModelNumber if ([niz]::IsNullOrEmpty($oemModelNumber)) { Write-Warning "OEMModelNumber je prazan" $oemModelNumber = "Nepoznato" Broj korisnika: } Write-Host "OEM broj modela: $oemModelNumber" } uhvatiti { Write-Warning "Ključ registra OEMModelNumber nije pronađen ili mu nije moguće pristupiti" $oemModelNumber = $null Write-Host "Broj modela OEM-a: nije dostupno" }
# 12. FirmwareVersion # PS verzija: Sve | Administrator: Možda je potrebno | Sistemski preduvjeti: nema pokušajte { $regValue = Get-ItemProperty -path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name FirmwareVersion -ErrorAction Stop $firmwareVersion = $regValue.FirmwareVersion if ([niz]::IsNullOrEmpty($firmwareVersion)) { Write-Warning "FirmwareVersion je prazan" $firmwareVersion = "Nepoznato" Broj korisnika: } Write-Host "Verzija opreme: $firmwareVersion" } uhvatiti { Write-Warning "Ključ registra FirmwareVersion nije pronađen ili nije dostupan" $firmwareVersion = $null Write-Host "Verzija opreme: nije dostupno" }
# 13. FirmwareReleaseDate # PS verzija: Sve | Administrator: Možda je potrebno | Sistemski preduvjeti: nema pokušajte { $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name FirmwareReleaseDate -ErrorAction Stop $firmwareReleaseDate = $regValue.FirmwareReleaseDate if ([niz]::IsNullOrEmpty($firmwareReleaseDate)) { Write-Warning "FirmwareReleaseDate is empty" $firmwareReleaseDate = "Nepoznato" Broj korisnika: } Write-Host "Datum izdavanja opreme: $firmwareReleaseDate" } uhvatiti { Write-Warning ključ registra "FirmwareReleaseDate nije pronađen ili mu nije moguće pristupiti" $firmwareReleaseDate = $null Write-Host "Datum izdavanja opreme: nije dostupno" }
# 14. OSArchitecture # PS verzija: Sve | Administrator: Ne | Sistemski preduvjeti: nema pokušajte { $osArchitecture = $env:PROCESSOR_ARCHITECTURE if ([niz]::IsNullOrEmpty($osArchitecture)) { # Isprobajte rezervni registar $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OSArchitecture -ErrorAction Stop $osArchitecture = $regValue.OSArchitecture Broj korisnika: } if ([niz]::IsNullOrEmpty($osArchitecture)) { Write-Warning "OSArchitecture nije moguće utvrditi" $osArchitecture = "Nepoznato" Broj korisnika: } Write-Host "Arhitektura OS-a: $osArchitecture" } uhvatiti { Write-Warning "Pogreška pri dohvaćanju OSArchitecture: $_" $osArchitecture = "Nepoznato" Write-Host "Arhitektura OS-a: $osArchitecture" }
# 15. CanAttemptUpdateAfter (FILETIME) # PS verzija: Sve | Administrator: Možda je potrebno | Sistemski preduvjeti: nema pokušajte { $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name CanAttemptUpdateAfter -ErrorAction Stop $canAttemptUpdateAfter = $regValue.CanAttemptUpdateAfter # Pretvori FILETIME u DateTime ako je to valjani broj if ($null -ne $canAttemptUpdateAfter -and $canAttemptUpdateAfter -is [long]) { pokušajte { $canAttemptUpdateAfter = [DateTime]::FromFileTime($canAttemptUpdateAfter) } uhvatiti { Write-Warning "Nije moguće pretvoriti CanAttemptUpdateAfter FILETIME u DateTime" Broj korisnika: } Broj korisnika: } Write-Host "Može pokušati ažurirati nakon: $canAttemptUpdateAfter" } uhvatiti { Write-Warning "Ključ registra CanAttemptUpdateAfter nije pronađen ili mu nije moguće pristupiti" $canAttemptUpdateAfter = $null Write-Host "Može pokušati ažurirati nakon: nije dostupno" }
# Event Logs: System Log (5 values)
# 16-20. Event Log queries # PS verzija: 3.0+ | Administrator: Možda će biti potrebno za zapisnik sustava | Sistemski preduvjeti: nema pokušajte { $allEventIds = @(1801, 1808) $events = @(Get-WinEvent -FilterHashtable @{LogName='Sustav'; ID=$allEventIds} -MaxEvents 20 -ErrorAction Stop)
if ($events.Count -eq 0) { Write-Warning "U zapisniku sustava nije pronađen nijedan događaj sigurnog pokretanja (1801./1808.) $latestEventId = $null $bucketId = $null $confidence = $null $event 1801Count = 0 $event 1808Count = 0 Write-Host "ID najnovijeg događaja: nije dostupno" Write-Host "ID grupe: nije dostupno" Write-Host "Pouzdanost: nije dostupno" Write-Host "Događaj 1801 Broj: 0" Write-Host "Događaj 1808 Broj: 0" } još { # 16. LatestEventId $latestEvent = $events | Sort-Object TimeCreated -Descending | Select-Object - Prvi 1 if ($null -eq $latestEvent) { Write-Warning "Nije moguće odrediti najnoviji događaj" $latestEventId = $null Write-Host "ID najnovijeg događaja: nije dostupno" } još { $latestEventId = $latestEvent.Id Write-Host "ID najnovijeg događaja: $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]. Skraćivanje() Write-Host "ID grupe: $bucketId" } još { Write-Warning "BucketId nije pronađen u poruci događaja" $bucketId = $null Write-Host "ID grupe: nije pronađeno u događaju" Broj korisnika: } } još { Write-Warning "Najnoviji događaj ili poruka ima vrijednost null, ne može izdvojiti BucketId" $bucketId = $null Write-Host "ID grupe: nije dostupno" }
# 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]. Skraćivanje() Write-Host "Pouzdanost: $confidence" } još { Write-Warning "Razina pouzdanosti nije pronađena u poruci događaja" $confidence = $null Write-Host "Pouzdanost: nije pronađeno u događaju" Broj korisnika: } } još { Write-Warning "Najnoviji događaj ili poruka ima vrijednost null, ne može izdvojiti pouzdanost" $confidence = $null Write-Host "Pouzdanost: nije dostupno" }
# 19. Event1801Count $event 1801Array = @($events | Where-Object {$_. Id -eq 1801}) $event 1801Count = $event 1801Array.Count Write-Host "Broj događaja 1801: $event 1801Count"
# 20. Event1808Count $event 1808Array = @($events | Where-Object {$_. Id -eq 1808}) $event 1808Count = $event 1808Array.Count Write-Host "Broj događaja 1808: $event 1808Count" Broj korisnika: } } uhvatiti { Write-Warning "Pogreška pri dohvaćanju zapisnika događaja. Možda će biti potrebne administratorske ovlasti: $_" $latestEventId = $null $bucketId = $null $confidence = $null $event 1801Count = 0 $event 1808Count = 0 Write-Host "ID najnovijeg događaja: pogreška" Write-Host "ID grupe: pogreška" Write-Host "Pouzdanost: pogreška" Write-Host "Događaj 1801 Broj: 0" Write-Host "Događaj 1808 Broj: 0" }
# WMI/CIM Queries (4 values)
# 21. OSVersion # PS verzija: 3.0+ (koristite Get-WmiObject za 2.0) | Administrator: Ne | Sistemski preduvjeti: nema pokušajte { $osInfo = Get-CimInstance Win32_OperatingSystem -ErrorAction Stop if ($null -eq $osInfo -or [string]::IsNullOrEmpty($osInfo.Version)) { Write-Warning "Nije moguće dohvatiti verziju OS-a" $osVersion = "Nepoznato" } još { $osVersion = $osInfo.version Broj korisnika: } Write-Host "Verzija OS-a: $osVersion" } uhvatiti { Write-Warning "Pogreška pri dohvaćanju verzije OS-a: $_" $osVersion = "Nepoznato" Write-Host "Verzija OS-a: $osVersion" }
# 22. LastBootTime # PS verzija: 3.0+ (koristite Get-WmiObject za 2.0) | Administrator: Ne | Sistemski preduvjeti: nema pokušajte { $osInfo = Get-CimInstance Win32_OperatingSystem -ErrorAction Stop if ($null -eq $osInfo -or $null -eq $osInfo.LastBootUpTime) { Write-Warning "Nije moguće dohvatiti vrijeme zadnjeg pokretanja" $lastBootTime = $null Write-Host "Vrijeme zadnjeg pokretanja: nije dostupno" } još { $lastBootTime = $osInfo.LastBootUpTime Write-Host "Vrijeme zadnjeg pokretanja: $lastBootTime" Broj korisnika: } } uhvatiti { Write-Warning "Pogreška pri dohvaćanju vremena zadnjeg pokretanja: $_" $lastBootTime = $null Write-Host "Vrijeme zadnjeg pokretanja: nije dostupno" }
# 23. BaseBoardManufacturer # PS verzija: 3.0+ (koristite Get-WmiObject za 2.0) | Administrator: Ne | Sistemski preduvjeti: nema pokušajte { $baseBoard = Get-CimInstance Win32_BaseBoard -ErrorAction Stop if ($null -eq $baseBoard -or [string]::IsNullOrEmpty($baseBoard.Manufacturer)) { Write-Warning "Nije moguće dohvatiti proizvođača osnovne ploče" $baseBoardManufacturer = "Nepoznato" } još { $baseBoardManufacturer = $baseBoard.Manufacturer Broj korisnika: } Write-Host "Proizvođač osnovne ploče: $baseBoardManufacturer" } uhvatiti { Write-Warning "Pogreška pri dohvaćanju proizvođača osnovne ploče: $_" $baseBoardManufacturer = "Nepoznato" Write-Host "Proizvođač osnovne ploče: $baseBoardManufacturer" }
# 24. BaseBoardProduct # PS verzija: 3.0+ (koristite Get-WmiObject za 2.0) | Administrator: Ne | Sistemski preduvjeti: nema pokušajte { $baseBoard = Get-CimInstance Win32_BaseBoard -ErrorAction Stop if ($null -eq $baseBoard -or [string]::IsNullOrEmpty($baseBoard.Product)) { Write-Warning "Nije moguće dohvatiti proizvod osnovne ploče" $baseBoardProduct = "Nepoznato" } još { $baseBoardProduct = $baseBoard.Product Broj korisnika: } Write-Host "Baseboard Product: $baseBoardProduct" } uhvatiti { Write-Warning "Pogreška pri dohvaćanju proizvoda osnovne ploče: $_" $baseBoardProduct = "Nepoznato" Write-Host "Osnovni proizvod: $baseBoardProduct"}