Pôvodný dátum publikovania: 17. novembra 2025
IDENTIFIKÁCIA DATABÁZY KB: 5072718
Vzorový skript zhromažďovania údajov inventára zabezpečeného spustenia
Skopírujte a prilepte tento vzorový skript a upravte ho podľa potreby pre svoje prostredie: skript kolekcie údajov ukážky zabezpečeného spustenia inventára.
Sample_Secure_Boot_Inventory_Data_Collection_script
# 1. HostName # PS Verzia: Všetky | Spravovanie: Nie | Systémové požiadavky: Žiadne vyskúšať { $hostname = $env:COMPUTERNAME if ([reťazec]::IsNullOrEmpty($hostname)) { Write-Warning "Názov hostiteľa sa nepodarilo určiť" $hostname = "Neznáme" V tejto e- Write-Host "Hostname: $hostname" (Názov hostiteľa: $hostname) } chytiť { Write-Warning "Chyba pri načítavaní názvu hostiteľa: $_" $hostname = "Chyba" Write-Host "Hostname: $hostname" (Názov hostiteľa: $hostname) }
# 2. CollectionTime # PS Verzia: Všetky | Spravovanie: Nie | Systémové požiadavky: Žiadne vyskúšať { $collectionTime = Get-Date if ($null -eq $collectionTime) { Write-Warning "Nepodarilo sa načítať aktuálny dátum a čas" $collectionTime = "Neznáme" V tejto e- Write-Host "Čas kolekcie: $collectionTime" } chytiť { Write-Warning "Chyba pri načítavaní dátumu a času: $_" $collectionTime = "Chyba" Write-Host "Čas kolekcie: $collectionTime" }
# Registry: Secure Boot Main Key (3 values)
# 3. SecureBootEnabled # PS Verzia: 3.0 + | Spravovanie: Môže sa vyžadovať | Systémové požiadavky: Systém UEFI/Zabezpečené spustenie vyskúšať { $secureBootEnabled = Confirm-SecureBootUEFI -ErrorAction Stop Write-Host "Secure Boot Enabled: $secureBootEnabled" (Povolené zabezpečené spustenie: $secureBootEnabled) } chytiť { Write-Warning "Nedá sa určiť stav zabezpečeného spustenia prostredníctvom rutiny typu cmdlet: $_" # Skúste záložnú akciu databázy Registry vyskúšať { $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\State" -Name UEFISecureBootEnabled -ErrorAction Stop $secureBootEnabled = [bool]$regValue.UEFISecureBootEnabled Write-Host "Zabezpečené spustenie povolené: $secureBootEnabled" } chytiť { Write-Warning "Nepodarilo sa určiť stav zabezpečeného spustenia prostredníctvom databázy Registry. Systém nemusí podporovať UEFI/Zabezpečené spustenie." $secureBootEnabled = $null Write-Host "Zabezpečené spustenie povolené: nie je k dispozícii" V tejto e- }
# 4. HighConfidenceOptOut # PS Verzia: Všetky | Spravovanie: Môže sa vyžadovať | Systémové požiadavky: Žiadne vyskúšať { $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot" -Name HighConfidenceOptOut -ErrorAction Stop $highConfidenceOptOut = $regValue.HighConfidenceOptOut Write-Host "High Confidence Opt Out: $highConfidenceOptOut" } chytiť { Write-Warning "Kľúč databázy Registry HighConfidenceOptOut sa nenašiel alebo je nedostupný" $highConfidenceOptOut = $null Write-Host "High Confidence Opt Out: Not available" (Výnimka vysokej spoľahlivosti: nie je k dispozícii) }
# 5. AvailableUpdates # PS Verzia: Všetky | Spravovanie: Môže sa vyžadovať | Systémové požiadavky: Žiadne vyskúšať { $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot" -Name AvailableUpdates -ErrorAction Stop $availableUpdates = $regValue.AvailableUpdates if ($null -ne $availableUpdates) { # Konvertovať na šestnástkové formáty $availableUpdatesHex = "0x{0:X}" -f $availableUpdates Write-Host Dostupné Aktualizácie: $availableUpdatesHex } else { Write-Host Dostupné Aktualizácie: Nie je k dispozícii V tejto e- } chytiť { Write-Warning "Kľúč databázy Registry AvailableUpdates sa nenašiel alebo je nedostupný" $availableUpdates = $null Write-Host "K dispozícii Aktualizácie: Nie je k dispozícii" }
# Registry: Servicing Key (3 values)
# 6. UEFICA2023Status # PS Verzia: Všetky | Spravovanie: Môže sa vyžadovať | Systémové požiadavky: Žiadne vyskúšať { $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\Servicing" -name UEFICA2023Status -ErrorAction Stop $uefica 2023Status = $regValue.UEFICA2023Status Write-Host "Stav UEFI CA 2023: $uefica 2023Status" } chytiť { Write-Warning "Kľúč databázy Registry UEFICA2023Status sa nenašiel alebo nie je prístupný" $uefica 2023Status = $null Write-Host "Stav UEFI CA 2023: Nie je k dispozícii" }
# 7. UEFICA2023Capable # PS Verzia: Všetky | Spravovanie: Môže sa vyžadovať | Systémové požiadavky: Žiadne vyskúšať { $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\Servicing" -name UEFICA2023Capable -ErrorAction Stop $uefica 2023Capable = $regValue.UEFICA2023Capable Write-Host "UEFI CA 2023 Schopné: $uefica 2023Capable" } chytiť { Write-Warning "Kľúč databázy Registry UEFICA2023Capable sa nenašiel alebo neprístupný" $uefica 2023Capable = $null Write-Host "UEFI CA 2023 capable: Not Available" }
# 8. UEFICA2023Error # PS Verzia: Všetky | Spravovanie: Môže sa vyžadovať | Systémové požiadavky: Žiadne vyskúšať { $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\Servicing" -name UEFICA2023Error -ErrorAction Stop $uefica 2023Chyba = $regValue.UEFICA2023Chyor Write-Host "Chyba UEFI CA 2023: $uefica 2023Chyba" } chytiť { Write-Warning "Kľúč databázy Registry UEFICA2023Error sa nenašiel alebo neprístupný" $uefica 2023Chyba = $null Write-Host "Chyba UEFI CA 2023: Nie je k dispozícii" }
# Registry: Device Attributes (7 values)
# 9. OEMManufacturerName # PS Verzia: Všetky | Spravovanie: Môže sa vyžadovať | Systémové požiadavky: Žiadne vyskúšať { $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OEMManufacturerName -ErrorAction Stop $oemManufacturerName = $regValue.OEMManufacturerName if ([reťazec]::IsNullOrEmpty($oemManufacturerName)) { Write-Warning "OEMManufacturerName je prázdne" $oemManufacturerName = "Neznáme" V tejto e- Write-Host "Názov výrobcu výrobcu OEM: $oemManufacturerName" } chytiť { Write-Warning "Kľúč databázy Registry OEMManufacturerName sa nenašiel alebo je nedostupný" $oemManufacturerName = $null Write-Host "Názov výrobcu OEM: Nie je k dispozícii" }
# 10. OEMModelSystemFamily # PS Verzia: Všetky | Spravovanie: Môže sa vyžadovať | Systémové požiadavky: Žiadne vyskúšať { $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OEMModelSystemFamily -ErrorAction Stop $oemModelSystemFamily = $regValue.OEMModelSystemFamily if ([reťazec]::IsNullOrEmpty($oemModelSystemFamily)) { Write-Warning "OEMModelSystemFamily je prázdne" $oemModelSystemFamily = Neznáme V tejto e- Write-Host "OEM Model System Family: $oemModelSystemFamily" } chytiť { Write-Warning "Kľúč databázy Registry OEMModelSystemFamily sa nenašiel alebo je nedostupný" $oemModelSystemFamily = $null Write-Host "OEM Model System Family: Not Available" }
# 11. OEMModelNumber # PS Verzia: Všetky | Spravovanie: Môže sa vyžadovať | Systémové požiadavky: Žiadne vyskúšať { $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OEMModelNumber -ErrorAction Stop $oemModelNumber = $regValue.OEMModelNumber if ([reťazec]::IsNullOrEmpty($oemModelNumber)) { Write-Warning "OEMModelNumber is empty" (Číslo OEMModelNumber je prázdne) $oemModelNumber = "Neznáme" V tejto e- Write-Host "Číslo modelu OEM: $oemModelNumber" } chytiť { Write-Warning "Kľúč databázy Registry OEMModelNumber sa nenašiel alebo je nedostupný" $oemModelNumber = $null Write-Host "Číslo modelu OEM: Nie je k dispozícii" }
# 12. FirmwareVersion # PS Verzia: Všetky | Spravovanie: Môže sa vyžadovať | Systémové požiadavky: Žiadne vyskúšať { $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name FirmwareVersion -ErrorAction Stop $firmwareVersion = $regValue.FirmwareVersion if ([reťazec]::IsNullOrEmpty($firmwareVersion)) { Write-Warning "FirmwareVersion is empty" (Verzia Firmvéru je prázdna) $firmwareVersion = "Neznáme" V tejto e- Write-Host Verzia firmvéru: $firmwareVersion } chytiť { Write-Warning "Kľúč databázy Registry FirmwareVersion sa nenašiel alebo je neprístupný" $firmwareVersion = $null Write-Host Verzia firmvéru: Nie je k dispozícii }
# 13. FirmwareReleaseDate # PS Verzia: Všetky | Spravovanie: Môže sa vyžadovať | Systémové požiadavky: Žiadne vyskúšať { $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name FirmwareReleaseDate -ErrorAction Stop $firmwareReleaseDate = $regValue.FirmwareReleaseDate if ([reťazec]::IsNullOrEmpty($firmwareReleaseDate)) { Write-Warning "FirmwareReleaseDate is empty" $firmwareReleaseDate = "Neznáme" V tejto e- Write-Host "Firmware Release Date: $firmwareReleaseDate" } chytiť { Write-Warning "FirmwareReleaseDate kľúč databázy Registry sa nenašiel alebo neprístupný" $firmwareReleaseDate = $null Write-Host "Firmware Release Date: Not Available" }
# 14. OSArchitecture # PS Verzia: Všetky | Spravovanie: Nie | Systémové požiadavky: Žiadne vyskúšať { $osArchitecture = $env:PROCESSOR_ARCHITECTURE if ([reťazec]::IsNullOrEmpty($osArchitecture)) { # Skúste záložnú akciu databázy Registry $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OSArchitecture -ErrorAction Stop $osArchitecture = $regValue.OSArchitecture V tejto e- if ([reťazec]::IsNullOrEmpty($osArchitecture)) { Write-Warning "OSArchitecture sa nepodarilo určiť" $osArchitecture = "Neznáme" V tejto e- Write-Host "Architektúra operačného systému: $osArchitecture" } chytiť { Write-Warning "Chyba pri načítavaní OSArchitecture: $_" $osArchitecture = "Neznáme" Write-Host Architektúra operačného systému: $osArchitecture }
# 15. CanAttemptUpdateAfter (FILETIME) # PS Verzia: Všetky | Spravovanie: Môže sa vyžadovať | Systémové požiadavky: Žiadne vyskúšať { $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name CanAttemptUpdateAfter -ErrorAction Stop $canAttemptUpdateAfter = $regValue.CanAttemptUpdateAfter # Konvertovať FILETIME na DateTime, ak ide o platné číslo if ($null -ne $canAttemptUpdateAfter -and $canAttemptUpdateAfter -is [long]) { vyskúšať { $canAttemptUpdateAfter = [DateTime]::FromFileTime($canAttemptUpdateAfter) } chytiť { Write-Warning "Nedá sa skonvertovať CanAttemptUpdateAfter FILETIME na DateTime" V tejto e- V tejto e- Write-Host "Môže sa pokúsiť o aktualizáciu po: $canAttemptUpdateAfter" } chytiť { Write-Warning "CanAttemptUpdateAfter kľúč databázy Registry sa nenašiel alebo je neprístupný" $canAttemptUpdateAfter = $null Write-Host "Môže sa pokúsiť o aktualizáciu po: Nie je k dispozícii" }
# Event Logs: System Log (5 values)
# 16-20. Event Log queries # PS Verzia: 3.0 + | Spravovanie: Denník systému sa môže vyžadovať | Systémové požiadavky: Žiadne vyskúšať { $allEventIds = @(1801, 1808) $events = @(Get-WinEvent -FilterHashtable @{LogName='System'; ID=$allEventIds} -MaxEvents 20 -ErrorAction Stop)
if ($events.Count -eq 0) { Write-Warning "Žiadne udalosti zabezpečeného spustenia (1801/1808) nájdené v denníku systému" $latestEventId = $null $bucketId = $null $confidence = $null $event 1801Count = 0 $event 1808Count = 0 Write-Host "Posledná identifikácia udalosti: Nie je k dispozícii" Write-Host "Bucket ID: Not Available" Write-Host "Spoľahlivosť: Nie je k dispozícii" Write-Host "Event 1801 Count: 0" Write-Host "Udalosť 1808 Počet: 0" } else { # 16. Posledná IdentifikáciaUdalosti $latestEvent = $events | Sort-Object timecreated -descending | Select-Object – prvá 1 if ($null -eq $latestEvent) { Write-Warning "Nepodarilo sa určiť najnovšiu udalosť" $latestEventId = $null Write-Host "Identifikácia poslednej udalosti: Nie je k dispozícii" } else { $latestEventId = $latestEvent.Id Write-Host "Identifikácia poslednej udalosti: $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]. Orezanie() Write-Host "Bucket ID: $bucketId" } else { Write-Warning "BucketId sa nenašiel v hlásení udalosti" $bucketId = $null Write-Host "Bucket ID: Not Found in Event" V tejto e- } else { Write-Warning "Posledná udalosť alebo správa má hodnotu null, nemôže extrahovať BucketId" $bucketId = $null Write-Host "Bucket ID: Not Available" }
# 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]. Orezanie() Write-Host "Spoľahlivosť: $confidence" } else { Write-Warning "Confidence level not found in event message" (Úroveň spoľahlivosti sa nenašla v hlásení udalosti) $confidence = $null Write-Host "Confidence: Not Found in Event" (Spoľahlivosť: nenašla sa v udalosti) V tejto e- } else { Write-Warning "Posledná udalosť alebo správa má hodnotu null, nemôže extrahovať spoľahlivosť" $confidence = $null Write-Host "Spoľahlivosť: Nie je k dispozícii" }
# 19. Event1801Count $event 1801Array = @($events | Where-Object {$_. Identifikácia -eq 1801}) $event 1801Count = $event 1801Array.Count Write-Host "Event 1801 Count: $event 1801Count"
# 20. Event1808Count $event 1808Array = @($events | Where-Object {$_. Identifikácia -eq 1808}) $event 1808Count = $event 1808Array.Count Write-Host "Event 1808 Count: $event 1808Count" V tejto e- } chytiť { Write-Warning "Chyba pri načítavaní denníkov udalostí. Môže vyžadovať oprávnenia správcu: $_" $latestEventId = $null $bucketId = $null $confidence = $null $event 1801Count = 0 $event 1808Count = 0 Write-Host "Identifikácia poslednej udalosti: chyba" Write-Host "Bucket ID: Error" Write-Host "Spoľahlivosť: Chyba" Write-Host "Event 1801 Count: 0" Write-Host "Udalosť 1808 Počet: 0" }
# WMI/CIM Queries (4 values)
# 21. OSVersion # PS Verzia: 3.0 + (použite Get-WmiObject pre 2.0) | Spravovanie: Nie | Systémové požiadavky: Žiadne vyskúšať { $osInfo = Get-CimInstance Win32_OperatingSystem -ErrorAction Stop if ($null -eq $osInfo -or [string]::IsNullOrEmpty($osInfo.Version)) { Write-Warning "Nepodarilo sa načítať verziu operačného systému" $osVersion = "Neznáme" } else { $osVersion = $osInfo.Version V tejto e- Write-Host Verzia operačného systému: $osVersion } chytiť { Write-Warning "Chyba pri načítavaní verzie operačného systému: $_" $osVersion = Neznáme Write-Host Verzia operačného systému: $osVersion }
# 22. LastBootTime # PS Verzia: 3.0 + (použite Get-WmiObject pre 2.0) | Spravovanie: Nie | Systémové požiadavky: Žiadne vyskúšať { $osInfo = Get-CimInstance Win32_OperatingSystem -ErrorAction Stop if ($null -eq $osInfo -or $null -eq $osInfo.LastBootUpTime) { Write-Warning "Nepodarilo sa načítať čas posledného spustenia" $lastBootTime = $null Write-Host "Čas posledného spustenia: Nie je k dispozícii" } else { $lastBootTime = $osInfo.LastBootUpTime Write-Host "Čas posledného spustenia: $lastBootTime" V tejto e- } chytiť { Write-Warning "Chyba pri načítavaní času posledného spustenia: $_" $lastBootTime = $null Write-Host "Čas posledného spustenia: Nie je k dispozícii" }
# 23. BaseBoardManufacturer # PS Verzia: 3.0 + (použite Get-WmiObject pre 2.0) | Spravovanie: Nie | Systémové požiadavky: Žiadne vyskúšať { $baseBoard = Get-CimInstance Win32_BaseBoard -ErrorAction Stop if ($null -eq $baseBoard -or [string]::IsNullOrEmpty($baseBoard.Manufacturer)) { Write-Warning "Nepodarilo sa načítať výrobcu základnej dosky" $baseBoardManufacturer = "Neznáme" } else { $baseBoardManufacturer = $baseBoard.Manufacturer V tejto e- Write-Host "Výrobca základnej dosky: $baseBoardManufacturer" } chytiť { Write-Warning "Chyba pri načítavaní výrobcu základnej dosky: $_" $baseBoardManufacturer = "Neznáme" Write-Host "Výrobca základnej dosky: $baseBoardManufacturer" }
# 24. BaseBoardProduct # PS Verzia: 3.0 + (použite Get-WmiObject pre 2.0) | Spravovanie: Nie | Systémové požiadavky: Žiadne vyskúšať { $baseBoard = Get-CimInstance Win32_BaseBoard -ErrorAction Stop if ($null -eq $baseBoard -or [string]::IsNullOrEmpty($baseBoard.Product)) { Write-Warning "Produkt základnej dosky sa nepodarilo načítať" $baseBoardProduct = Neznáme } else { $baseBoardProduct = $baseBoard.Product V tejto e- Write-Host "Baseboard Product: $baseBoardProduct" } chytiť { Write-Warning "Chyba pri načítavaní produktu baseboard: $_" $baseBoardProduct = Neznáme Write-Host "Baseboard Product: $baseBoardProduct"}