Originalni datum objavljivanja: 17. novembar 2025.
KB ID: 5072718
Uzorak skripte prikupljanja podataka o zalihama bezbednog pokretanja sistema
Kopirajte i nalepite ovu uzorak skripte i izmenite po potrebi za okruženje: Skripta "Uzorak prikupljanja podataka o zalihama bezbednog pokretanja".
Sample_Secure_Boot_Inventory_Data_Collection_script
# 1. HostName # PS verzija: Sve | Administrator: Ne | Sistemski zahtevi: nijedan pokušajte { $hostname = $env:COMPUTERNAME if ([niska]::IsNullOrEmpty($hostname)) { Write-Warning "Nije moguće utvrditi ime hosta" $hostname = "Nepoznato" } Write-Host "Ime hosta: $hostname" } hvatanje { Write-Warning "Greška pri dobavljanju imena hosta: $_" $hostname = "Greška" Write-Host "Ime hosta: $hostname" }
# 2. CollectionTime # PS verzija: Sve | Administrator: Ne | Sistemski zahtevi: nijedan pokušajte { $collectionTime = Get-Date if ($null -eq $collectionTime) { Write-Warning "Nije moguće preuzeti trenutni datum/vreme" $collectionTime = "Nepoznato" } Write-Host "Vreme kolekcije: $collectionTime" } hvatanje { Write-Warning "Greška pri preuzimanju datuma/vremena: $_" $collectionTime = "Greška" Write-Host "Vreme kolekcije: $collectionTime" }
# Registry: Secure Boot Main Key (3 values)
# 3. SecureBootEnabled # PS verzija: 3.0+ | Administrator: može biti potrebno | Sistemski zahtevi: sistem omogućen za UEFI/bezbedno pokretanje sistema pokušajte { $secureBootEnabled = Confirm-SecureBootUEFI -Prekid greške Write-Host "Omogućeno bezbedno pokretanje sistema: $secureBootEnabled" } hvatanje { Write-Warning "Nije moguće utvrditi status bezbednog pokretanja putem cmdlet komande: $_" # Isprobajte povratne informacije u registratoru pokušajte { $regValue = Get-ItemProperty -Putanja "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\State" -Name UEFISecureBootEnabled -ErrorAction Stop $secureBootEnabled = [bool]$regValue.UEFISecureBootEnabled Write-Host "Omogućeno bezbedno pokretanje sistema: $secureBootEnabled" } hvatanje { Write-Warning "Nije moguće utvrditi status bezbednog pokretanja putem registratora. Sistem možda ne podržava UEFI/bezbedno pokretanje." $secureBootEnabled = $null Write-Host "Omogućeno bezbedno pokretanje sistema: nije dostupno" } }
# 4. HighConfidenceOptOut # PS verzija: Sve | Administrator: može biti potrebno | Sistemski zahtevi: nijedan pokušajte { $regValue = Get-ItemProperty -Putanja "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot" -Name HighConfidenceOptOut -ErrorAction Stop $highConfidenceOptOut = $regValue.HighConfidenceOptOut Write-Host "Odbijanje saglasnosti visokog stepena pouzdanosti: $highConfidenceOptOut" } hvatanje { Write-Warning "Ključ registratora HighConfidenceOptOut nije pronađen ili nedostupan" $highConfidenceOptOut = $null Write-Host "Odbijanje saglasnosti sa visokim stepenom pouzdanosti: nije dostupno" }
# 5. AvailableUpdates # PS verzija: Sve | Administrator: može biti potrebno | Sistemski zahtevi: nijedan pokušajte { $regValue = Get-ItemProperty -Putanja "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot" -Name AvailableUpdates -ErrorAction Stop $availableUpdates = $regValue.AvailableUpdates if ($null -ne $availableUpdates) { # Konvertuj u heksadecimalni format $availableUpdatesHex = "0x{0:X}" -f $availableUpdates Write-Host "Dostupno Novosti: $availableUpdatesHex" } još { Write-Host "Dostupno Novosti: Nije dostupno" } } hvatanje { Write-Warning "AvailableUpdates ključ registratora nije pronađen ili nedostupan" $availableUpdates = $null Write-Host "Dostupno Novosti: Nije dostupno" }
# Registry: Servicing Key (3 values)
# 6. UEFICA2023Status # PS verzija: Sve | Administrator: može biti potrebno | Sistemski zahtevi: nijedan pokušajte { $regValue = Get-ItemProperty -Putanja "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\Servicing" -Name UEFICA2023Status -ErrorAction Stop $uefica 2023Status = $regValue.UEFICA2023Status Write-Host "UEFI CA 2023 status: $uefica 2023Status" } hvatanje { Write-Warning "Ključ registratora UEFICA2023Status nije pronađen ili nedostupan" $uefica 2023Status = $null Write-Host "UEFI CA 2023 status: Nije dostupno" }
# 7. UEFICA2023Capable # PS verzija: Sve | Administrator: može biti potrebno | Sistemski zahtevi: nijedan pokušajte { $regValue = Get-ItemProperty -Putanja "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\Servicing" -Name UEFICA2023Capable -ErrorAction Stop $uefica 2023Capable = $regValue.UEFICA2023Capable Write-Host "UEFI CA 2023 može: $uefica 2023Capable" } hvatanje { Write-Warning "UEFICA2023Capable ključ registratora nije pronađen ili nedostupan" $uefica 2023Capable = $null Write-Host "UEFI CA 2023 može: nije dostupno" }
# 8. UEFICA2023Error # PS verzija: Sve | Administrator: može biti potrebno | Sistemski zahtevi: nijedan pokušajte { $regValue = Get-ItemProperty -Putanja "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\Servicing" -Name UEFICA2023Error -ErrorAction Stop $uefica 2023Error = $regValue.UEFICA2023Error Write-Host "UEFI CA 2023 greška: $uefica 2023Greška" } hvatanje { Write-Warning "Ključ registratora UEFICA2023Error nije pronađen ili nedostupan" $uefica 2023Error = $null Write-Host "UEFI CA 2023 greška: nije dostupno" }
# Registry: Device Attributes (7 values)
# 9. OEMManufacturerName # PS verzija: Sve | Administrator: može biti potrebno | Sistemski zahtevi: nijedan pokušajte { $regValue = Get-ItemProperty -Putanja "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OEMManufacturerName -ErrorAction Stop $oemManufacturerName = $regValue.OEMManufacturerName if ([niska]::IsNullOrEmpty($oemManufacturerName)) { Write-Warning "OEMManufacturerName je prazno" $oemManufacturerName = "Nepoznato" } Write-Host "Ime proizvođača OEM proizvođača: $oemManufacturerName" } hvatanje { Write-Warning "OEMManufacturerName ključ registratora nije pronađen ili nedostupan" $oemManufacturerName = $null Write-Host "Ime proizvođača OEM proizvođača: nije dostupno" }
# 10. OEMModelSystemFamily # PS verzija: Sve | Administrator: može biti potrebno | Sistemski zahtevi: nijedan pokušajte { $regValue = Get-ItemProperty -Putanja "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OEMModelSystemFamily -ErrorAction Stop $oemModelSystemFamily = $regValue.OEMModelSystemFamily if ([niska]::IsNullOrEmpty($oemModelSystemFamily)) { Write-Warning "OEMModelSystemFamily je prazan" $oemModelSystemFamily = "Nepoznato" } Write-Host "Porodica sistema OEM modela: $oemModelSystemFamily" } hvatanje { Write-Warning "OEMModelSystemFamily ključ registratora nije pronađen ili nedostupan" $oemModelSystemFamily = $null Write-Host "OEM Model System Family: Not available" }
# 11. OEMModelNumber # PS verzija: Sve | Administrator: može biti potrebno | Sistemski zahtevi: nijedan pokušajte { $regValue = Get-ItemProperty -Putanja "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OEMModelNumber -ErrorAction Stop $oemModelNumber = $regValue.OEMModelNumber if ([niska]::IsNullOrEmpty($oemModelNumber)) { Write-Warning "OEMModelNumber je prazan" $oemModelNumber = "Nepoznato" } Write-Host "Broj OEM modela: $oemModelNumber" } hvatanje { Write-Warning "OEMModelNumber ključ registratora nije pronađen ili nedostupan" $oemModelNumber = $null Write-Host "Broj OEM modela: nije dostupan" }
# 12. FirmwareVersion # PS verzija: Sve | Administrator: može biti potrebno | Sistemski zahtevi: nijedan pokušajte { $regValue = Get-ItemProperty -Putanja "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name FirmwareVersion -ErrorAction Stop $firmwareVersion = $regValue.FirmwareVersion if ([niska]::IsNullOrEmpty($firmwareVersion)) { Write-Warning "FirmwareVersion je prazna" $firmwareVersion = "Nepoznato" } Write-Host "Verzija firmvera: $firmwareVersion" } hvatanje { Write-Warning "Ključ registratora FirmwareVersion nije pronađen ili nedostupan" $firmwareVersion = $null Write-Host "Verzija firmvera: nije dostupna" }
# 13. FirmwareReleaseDate # PS verzija: Sve | Administrator: može biti potrebno | Sistemski zahtevi: nijedan pokušajte { $regValue = Get-ItemProperty -Putanja "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name FirmwareReleaseDate -ErrorAction Stop $firmwareReleaseDate = $regValue.FirmwareReleaseDate if ([niska]::IsNullOrEmpty($firmwareReleaseDate)) { Write-Warning "FirmwareReleaseDate je prazan" $firmwareReleaseDate = "Nepoznato" } Write-Host "Datum izdavanja firmvera: $firmwareReleaseDate" } hvatanje { Write-Warning "FirmwareReleaseDate ključ registratora nije pronađen ili nedostupan" $firmwareReleaseDate = $null Write-Host "Datum izdavanja firmvera: nije dostupan" }
# 14. OSArchitecture # PS verzija: Sve | Administrator: Ne | Sistemski zahtevi: nijedan pokušajte { $osArchitecture = $env:PROCESSOR_ARCHITECTURE if ([niska]::IsNullOrEmpty($osArchitecture)) { # Isprobajte povratne informacije u registratoru $regValue = Get-ItemProperty -Putanja "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OSArchitecture -ErrorAction Stop $osArchitecture = $regValue.OSArchitecture } if ([niska]::IsNullOrEmpty($osArchitecture)) { Write-Warning "Nije moguće utvrditi OSArchitecture" $osArchitecture = "Nepoznato" } Write-Host "Arhitektura operativnog sistema: $osArchitecture" } hvatanje { Write-Warning "Greška pri dobavljanju OSArchitecture: $_" $osArchitecture = "Nepoznato" Write-Host "Arhitektura operativnog sistema: $osArchitecture" }
# 15. CanAttemptUpdateAfter (FILETIME) # PS verzija: Sve | Administrator: može biti potrebno | Sistemski zahtevi: nijedan pokušajte { $regValue = Get-ItemProperty -Putanja "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name CanAttemptUpdateAfter -ErrorAction Stop $canAttemptUpdateAfter = $regValue.CanAttemptUpdateAfter # Konvertuj FILETIME u "DateTime" ako je to važeći broj if ($null -ne $canAttemptUpdateAfter -and $canAttemptUpdateAfter -is [long]) { pokušajte { $canAttemptUpdateAfter = [DateTime]::FromFileTime($canAttemptUpdateAfter) } hvatanje { Write-Warning "Nije moguće konvertovati CanAttemptUpdateAfter FILETIME u DateTime" } } Write-Host "Može da pokuša ažuriranje posle: $canAttemptUpdateAfter" } hvatanje { Write-Warning "CanAttemptUpdateAfter ključ registratora nije pronađen ili nedostupan" $canAttemptUpdateAfter = $null Write-Host "Može da pokuša ažuriranje posle: nije dostupno" }
# Event Logs: System Log (5 values)
# 16-20. Event Log queries # PS verzija: 3.0+ | Administrator: možda će biti potrebno za sistemsku evidenciju | Sistemski zahtevi: nijedan pokušajte { $allEventIds = @(1801, 1808) $events = @(Get-WinEvent -FilterHashtable @{LogName='System'; ID=$allEventIds} -MaxEvents 20 -ErrorAction Stop)
if ($events.Count -eq 0) { Write-Warning "U sistemskoj evidenciji nisu pronađeni događaji bezbednog pokretanja (1801/1808) $latestEventId = $null $bucketId = $null $confidence = $null $event 1801Count = 0 $event 1808Count = 0 Write-Host "Najnoviji ID događaja: nije dostupan" Write-Host "ID grupe: nije dostupan" Write-Host "Pouzdanost: nije dostupno" Write-Host "Događaj 1801 Broj: 0" Write-Host "Događaj 1808 Count: 0" } još { # 16. NajnovijiId $latestEvent = $events | Sort-Object -Opadajući redosled | Select-Object - Prvih 1 if ($null -eq $latestEvent) { Write-Warning "Nije moguće utvrditi najnoviji događaj" $latestEventId = $null Write-Host "Najnoviji ID događaja: nije dostupan" } još { $latestEventId = $latestEvent.Id Write-Host "Najnoviji ID događaja: $latestEventId" }
# 17. BucketID - Extracted from Event 1801/1808 if ($null -ne $latestEvent -and $null -ne $latestEvent.Message) { if ($latestEvent.Message - podudaranje 'BucketId:\s*(.+)') { $bucketId = $matches[1]. Skrati() Write-Host "ID kontejnera: $bucketId" } još { Write-Warning "ID grupe nije pronađen u poruci o događaju" $bucketId = $null Write-Host "ID grupe: nije pronađen u događaju" } } još { Write-Warning "Najnoviji događaj ili poruka su bez vrednosti, nije moguće izdvojiti ID grupe" $bucketId = $null Write-Host "ID grupe: nije dostupan" }
# 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]. Skrati() Write-Host "Pouzdanost: $confidence" } još { Write-Warning "Nivo pouzdanosti nije pronađen u poruci događaja" $confidence = $null Write-Host "Pouzdanost: nije pronađeno u događaju" } } još { Write-Warning "Najnoviji događaj ili poruka su bez vrednosti, nije moguć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 "Događaj 1808 Count: $event 1808Count" } } hvatanje { Write-Warning "Greška pri preuzimanju evidencija događaja. Možda će biti potrebne administratorske privilegije: $_" $latestEventId = $null $bucketId = $null $confidence = $null $event 1801Count = 0 $event 1808Count = 0 Write-Host "Najnoviji ID događaja: greška" Write-Host "ID grupe: greška" Write-Host "Pouzdanost: greška" Write-Host "Događaj 1801 Broj: 0" Write-Host "Događaj 1808 Count: 0" }
# WMI/CIM Queries (4 values)
# 21. OSVersion # PS verzija: 3.0+ (koristite Get-WmiObject za 2.0) | Administrator: Ne | Sistemski zahtevi: nijedan pokušajte { $osInfo = Get-CimInstance Win32_OperatingSystem -Prekid greške if ($null -eq $osInfo -ili [string]::IsNullOrEmpty($osInfo.Version)) { Write-Warning "Nije moguće preuzeti verziju operativnog sistema" $osVersion = "Nepoznato" } još { $osVersion = $osInfo.Version } Write-Host "Verzija operativnog sistema: $osVersion" } hvatanje { Write-Warning "Greška pri dobavljanju verzije operativnog sistema: $_" $osVersion = "Nepoznato" Write-Host "Verzija operativnog sistema: $osVersion" }
# 22. LastBootTime # PS verzija: 3.0+ (koristite Get-WmiObject za 2.0) | Administrator: Ne | Sistemski zahtevi: nijedan pokušajte { $osInfo = Get-CimInstance Win32_OperatingSystem -Prekid greške if ($null -eq $osInfo -ili $null -eq $osInfo.LastBootUpTime) { Write-Warning "Nije moguće preuzeti vreme poslednjeg pokretanja" $lastBootTime = $null Write-Host "Vreme poslednjeg pokretanja: nije dostupno" } još { $lastBootTime = $osInfo.LastBootUpTime Write-Host "Vreme poslednjeg pokretanja: $lastBootTime" } } hvatanje { Write-Warning "Greška pri preuzimanju vremena poslednjeg pokretanja aplikacije: $_" $lastBootTime = $null Write-Host "Vreme poslednjeg pokretanja: nije dostupno" }
# 23. BaseBoardManufacturer # PS verzija: 3.0+ (koristite Get-WmiObject za 2.0) | Administrator: Ne | Sistemski zahtevi: nijedan pokušajte { $baseBoard = Get-CimInstance Win32_BaseBoard -Tačka greške if ($null -eq $baseBoard -ili [string]::IsNullOrEmpty($baseBoard.Manufacturer)) { Write-Warning "Nije moguće preuzeti proizvođača osnovne table" $baseBoardManufacturer = "Nepoznato" } još { $baseBoardManufacturer = $baseBoard.Proizvođač } Write-Host "Proizvođač osnovne table: $baseBoardManufacturer" } hvatanje { Write-Warning "Greška pri preuzimanju proizvođača osnovne table: $_" $baseBoardManufacturer = "Nepoznato" Write-Host "Proizvođač osnovne table: $baseBoardManufacturer" }
# 24. BaseBoardProduct # PS verzija: 3.0+ (koristite Get-WmiObject za 2.0) | Administrator: Ne | Sistemski zahtevi: nijedan pokušajte { $baseBoard = Get-CimInstance Win32_BaseBoard -Tačka greške if ($null -eq $baseBoard -ili [string]::IsNullOrEmpty($baseBoard.Product)) { Write-Warning "Nije bilo moguće preuzeti proizvod sa osnovne table" $baseBoardProduct = "Nepoznato" } još { $baseBoardProduct = $baseBoard.Product } Write-Host "Osnovni proizvod: $baseBoardProduct" } hvatanje { Write-Warning "Greška pri preuzimanju osnovne table proizvoda: $_" $baseBoardProduct = "Nepoznato" Write-Host "Osnovni proizvod: $baseBoardProduct"}