Platí pro
Windows 10 Windows 10, version 1607, all editions Win 10 Ent LTSC 2019 Win 10 IoT Ent LTSC 2019 Windows 10 IoT Core LTSC Windows 10 Enterprise LTSC 2021 Windows 10 IoT Enterprise LTSC 2021 Windows 10, version 22H2, all editions Windows 11 Home and Pro, version 21H2 Windows 11 Enterprise Multi-Session, version 21H2 Windows 11 Enterprise and Education, version 21H2 Windows 11 IoT Enterprise, version 21H2 Windows 11 Home and Pro, version 22H2 Windows 11 Enterprise Multi-Session, version 22H2 Windows 11 Enterprise and Education, version 22H2 Windows 11 IoT Enterprise, version 22H2 Windows 11 SE, version 23H2 Windows 11 Home and Pro, version 23H2 Windows 11 Enterprise and Education, version 23H2 Windows 11 Enterprise Multi-Session, version 23H2 Windows 11 SE, version 24H2 Windows 11 Enterprise and Education, version 24H2 Windows 11 Enterprise Multi-Session, version 24H2 Windows 11 Home and Pro, version 24H2 Windows 11 IoT Enterprise, version 24H2 Windows Server 2012 ESU Windows Server 2012 R2 ESU Windows Server 2016 Windows Server 2019 Windows Server 2022 Windows Server 2025

Původní datum publikování: úterý 17. listopadu 2025

ID znalostní báze: 5072718

Ukázkový skript pro shromažďování dat inventáře zabezpečeného spouštění

Zkopírujte a vložte tento ukázkový skript a upravte ho podle potřeby pro vaše prostředí: Ukázkový skript pro shromažďování dat inventáře zabezpečeného spouštění.

Sample_Secure_Boot_Inventory_Data_Collection_script

# 1. HostName # PS Verze: Vše | Správa: Ne | Požadavky na systém: Žádné try {     $hostname = $env:NÁZEVPOČÍTAČE     if ([string]::IsNullOrEmpty($hostname)) {         Write-Warning "Název hostitele nelze určit"         $hostname = "Neznámé"     }     Write-Host Název hostitele: $hostname } catch {     Write-Warning "Chyba při načítání názvu hostitele: $_"     $hostname = "Chyba"     Write-Host Název hostitele: $hostname }

# 2. CollectionTime # PS Verze: Vše | Správa: Ne | Požadavky na systém: Žádné try {     $collectionTime = Získat datum     if ($null -eq $collectionTime) {         Write-Warning Nelze načíst aktuální datum a čas.         $collectionTime = "Neznámý"     }     Write-Host "Čas shromažďování: $collectionTime" } catch {     Write-Warning "Chyba při načítání data a času: $_"     $collectionTime = "Chyba"     Write-Host "Čas shromažďování: $collectionTime" }

# Registry: Secure Boot Main Key (3 values)

# 3. SecureBootEnabled # PS Verze: 3.0+ | Správa: Může se vyžadovat | Požadavky na systém: Systém s podporou rozhraní UEFI nebo zabezpečeného spouštění try {     $secureBootEnabled = Confirm-SecureBootUEFI -ErrorAction Stop     Write-Host "Zabezpečené spouštění povoleno: $secureBootEnabled" } catch {     Write-Warning Nejde určit stav zabezpečeného spouštění pomocí rutiny: $_"     # Zkuste záložní registr     try {         $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\State" -Name UEFISecureBootEnabled -ErrorAction Stop         $secureBootEnabled = [bool]$regValue.UEFISecureBootEnabled         Write-Host "Zabezpečené spouštění povoleno: $secureBootEnabled"     } catch {         Write-Warning Nejde určit stav zabezpečeného spouštění prostřednictvím registru. Systém nemusí podporovat UEFI nebo zabezpečené spouštění."         $secureBootEnabled = $null         Write-Host "Zabezpečené spouštění povoleno: není k dispozici"     } }

# 4. HighConfidenceOptOut # PS Verze: Vše | Správa: Může se vyžadovat | Požadavky na systém: Žádné try {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot" -Name HighConfidenceOptOut -ErrorAction Stop     $highConfidenceOptOut = $regValue.HighConfidenceOptOut     Write-Host "High Confidence Opt Out: $highConfidenceOptOut" } catch {     Write-Warning Klíč registru HighConfidenceOptOut nebyl nalezen nebo je nepřístupný.     $highConfidenceOptOut = $null     Write-Host "Odhlášení s vysokou spolehlivostí: Není k dispozici" }

# 5. AvailableUpdates # PS Verze: Vše | Správa: Může se vyžadovat | Požadavky na systém: Žádné try {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot" -Name AvailableUpdates -ErrorAction Stop     $availableUpdates = $regValue.AvailableUpdates     if ($null -ne $availableUpdates) {         # Převést do šestnáctkového formátu         $availableUpdatesHex = "0x{0:X}" -f $availableUpdates         Write-Host "K dispozici Aktualizace: $availableUpdatesHex"     } else {         Write-Host "K dispozici Aktualizace: Není k dispozici"     } } catch {     Write-Warning "Klíč registru AvailableUpdates nebyl nalezen nebo je nepřístupný"     $availableUpdates = $null     Write-Host "K dispozici Aktualizace: Není k dispozici" }

# Registry: Servicing Key (3 values)

# 6. UEFICA2023Status # PS Verze: Vše | Správa: Může se vyžadovat | Požadavky na systém: Žádné try {     $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" } catch {     Write-Warning "Klíč registru UEFICA2023Status nebyl nalezen nebo je nepřístupný"     $uefica 2023Status = $null     Write-Host "Stav UEFI CA 2023: Není k dispozici" }

# 7. UEFICA2023Capable # PS Verze: Vše | Správa: Může se vyžadovat | Požadavky na systém: Žádné try {     $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" } catch {     Write-Warning "Klíč registru UEFICA2023Capable nebyl nalezen nebo je nepřístupný"     $uefica 2023Capable = $null     Write-Host "UEFI CA 2023 Capable: Not available" (Podporuje UEFI CA 2023: není k dispozici) }

# 8. UEFICA2023Error # PS Verze: Vše | Správa: Může se vyžadovat | Požadavky na systém: Žádné try {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\Servicing" -Name UEFICA2023Error -ErrorAction Stop     $uefica 2023Error = $regValue.UEFICA2023Error     Write-Host "Chyba ca UEFI 2023: $uefica 2023Error" } catch {     Write-Warning "Klíč registru UEFICA2023 se nenašel nebo je nepřístupný"     $uefica 2023Error = $null     Write-Host "Chyba ca UEFI 2023: Není k dispozici" }

# Registry: Device Attributes (7 values)

# 9. OEMManufacturerName # PS Verze: Vše | Správa: Může se vyžadovat | Požadavky na systém: Žádné try {     $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 prázdný"         $oemManufacturerName = "Neznámý"     }     Write-Host "OEM Manufacturer Name: $oemManufacturerName" } catch {     Write-Warning klíč registru OEMManufacturerName nebyl nalezen nebo je nepřístupný.     $oemManufacturerName = $null     Write-Host "Název výrobce OEM: Není k dispozici" }

# 10. OEMModelSystemFamily # PS Verze: Vše | Správa: Může se vyžadovat | Požadavky na systém: Žádné try {     $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 prázdný"         $oemModelSystemFamily = "Neznámý"     }     Write-Host "OEM Model System Family: $oemModelSystemFamily" } catch {     Write-Warning klíč registru OEMModelSystemFamily nebyl nalezen nebo je nepřístupný.     $oemModelSystemFamily = $null     Write-Host "Řada systémů modelů OEM: Není k dispozici" }

# 11. OEMModelNumber # PS Verze: Vše | Správa: Může se vyžadovat | Požadavky na systém: Žádné try {     $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 prázdné".         $oemModelNumber = "Neznámé"     }     Write-Host "Číslo modelu OEM: $oemModelNumber" } catch {     Write-Warning klíč registru OEMModelNumber nebyl nalezen nebo je nepřístupný.     $oemModelNumber = $null     Write-Host "Číslo modelu OEM: Není k dispozici" }

# 12. FirmwareVersion # PS Verze: Vše | Správa: Může se vyžadovat | Požadavky na systém: Žádné try {     $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 prázdná.         $firmwareVersion = "Neznámé"     }     Write-Host "Verze firmwaru: $firmwareVersion" } catch {     Write-Warning "Klíč registru FirmwareVersion nebyl nalezen nebo je nepřístupný"     $firmwareVersion = $null     Write-Host "Verze firmwaru: není k dispozici" }

# 13. FirmwareReleaseDate # PS Verze: Vše | Správa: Může se vyžadovat | Požadavky na systém: Žádné try {     $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 prázdný.         $firmwareReleaseDate = "Neznámý"     }     Write-Host "Datum vydání firmwaru: $firmwareReleaseDate" } catch {     Write-Warning Klíč registru FirmwareReleaseDate nebyl nalezen nebo je nepřístupný.     $firmwareReleaseDate = $null     Write-Host "Datum vydání firmwaru: Není k dispozici" }

# 14. OSArchitecture # PS Verze: Vše | Správa: Ne | Požadavky na systém: Žádné try {     $osArchitecture = $env:PROCESSOR_ARCHITECTURE     if ([string]::IsNullOrEmpty($osArchitecture)) {         # Zkuste záložní registr         $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OSArchitecture -ErrorAction Stop         $osArchitecture = $regValue.OSArchitecture     }     if ([string]::IsNullOrEmpty($osArchitecture)) {         Write-Warning "OSArchitecture nelze určit"         $osArchitecture = "Neznámé"     }     Write-Host "Architektura operačního systému: $osArchitecture" } catch {     Write-Warning "Chyba při načítání OSArchitecture: $_"     $osArchitecture = "Neznámý"     Write-Host "Architektura operačního systému: $osArchitecture" }

# 15. CanAttemptUpdateAfter (FILETIME) # PS Verze: Vše | Správa: Může se vyžadovat | Požadavky na systém: Žádné try {     $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 -a $canAttemptUpdateAfter -is [long]) {         try {             $canAttemptUpdateAfter = [DateTime]::FromFileTime($canAttemptUpdateAfter)         } catch {             Write-Warning "Nelze převést CanAttemptUpdateAfter FILETIME na DateTime"         }     }     Write-Host "Může se pokusit o aktualizaci po: $canAttemptUpdateAfter" } catch {     Write-Warning "CanAttemptUpdateAfter klíč registru nebyl nalezen nebo je nepřístupný"     $canAttemptUpdateAfter = $null     Write-Host "Může se pokusit o aktualizaci po: Není k dispozici" }

# Event Logs: System Log (5 values)

# 16-20. Event Log queries # PS Verze: 3.0+ | Správa: Může být vyžadováno pro systémový protokol | Požadavky na systém: Žádné try {     $allEventIds = @(1801; 1808)     $events = @(Get-WinEvent -FilterHashtable @{LogName='System'; ID=$allEventIds} -MaxEvents 20 -ErrorAction Stop)

    if ($events.Count -eq 0) {         Write-Warning V systémovém protokolu nebyly nalezeny žádné události zabezpečeného spouštění (1801/1808)         $latestEventId = $null         $bucketId = $null         $confidence = $null         $event 1801Počet = 0         $event 1808Počet = 0         Write-Host "Nejnovější ID události: Není k dispozici"         Write-Host ID kbelíku: Není k dispozici         Write-Host "Spolehlivost: Není k dispozici"         Write-Host "Událost 1801 Count: 0"         Write-Host "Událost 1808 Count: 0"     } else {         # 16. LatestEventId         $latestEvent = $events | Sort-Object TimeCreated -Descending | Select-Object -První 1         if ($null -eq $latestEvent) {             Write-Warning Nejde určit nejnovější událost.             $latestEventId = $null             Write-Host "Nejnovější ID události: Není k dispozici"         } else {             $latestEventId = $latestEvent.Id             Write-Host "Nejnovější ID události: $latestEventId"         }

        # 17. BucketID - Extracted from Event 1801/1808 if ($null -ne $latestEvent -a $null -ne $latestEvent.Message) {             if ($latestEvent.Message -match 'BucketId:\s*(.+)) {                 $bucketId = $matches[1]. Trim()                 Write-Host ID kbelíku: $bucketId             } else {                 Write-Warning BucketId se ve zprávě události nenašlo.                 $bucketId = $null                 Write-Host "ID kbelíku: v události se nenašlo"             }         } else {             Write-Warning "Nejnovější událost nebo zpráva má hodnotu null, nelze extrahovat BucketId"             $bucketId = $null             Write-Host "Id kbelíku: Není k dispozici"         }

        # 18. Confidence - Extracted from Event 1801/1808 if ($null -ne $latestEvent -a $null -ne $latestEvent.Message) {             if ($latestEvent.Message -match 'BucketConfidenceLevel:\s*(.+)' {                 $confidence = $matches[1]. Trim()                 Write-Host "Spolehlivost: $confidence"             } else {                 Write-Warning "Ve zprávě události nebyla nalezena úroveň spolehlivosti"                 $confidence = $null                 Write-Host "Spolehlivost: Nenalezena v události"             }         } else {             Write-Warning "Nejnovější událost nebo zpráva má hodnotu null, nelze extrahovat spolehlivost"             $confidence = $null             Write-Host "Spolehlivost: Není k dispozici"         }

        # 19. Event1801Count $event 1801Array = @($events | Where-Object {$_. ID -eq 1801})         $event 1801Count = $event 1801Array.Count         Write-Host "Událost 1801 Count: $event 1801Count"

        # 20. Event1808Count $event 1808Array = @($events | Where-Object {$_. ID -eq 1808})         $event 1808Count = $event 1808Array.Count         Write-Host "Událost 1808 Count: $event 1808Count"     } } catch {     Write-Warning Chyba při načítání protokolů událostí. Může vyžadovat oprávnění správce: $_"     $latestEventId = $null     $bucketId = $null     $confidence = $null     $event 1801Počet = 0     $event 1808Počet = 0     Write-Host "Nejnovější ID události: Chyba"     Write-Host "ID kbelíku: Chyba"     Write-Host "Spolehlivost: Chyba"     Write-Host "Událost 1801 Count: 0"     Write-Host "Událost 1808 Count: 0" }

# WMI/CIM Queries (4 values)

# 21. OSVersion # PS Verze: 3.0+ (použijte Get-WmiObject pro verzi 2.0) | Správa: Ne | Požadavky na systém: Žádné try {     $osInfo = Get-CimInstance Win32_OperatingSystem -ErrorAction Stop     if ($null -eq $osInfo -nebo [string]::IsNullOrEmpty($osInfo.Version)) {         Write-Warning "Nepovedlo se načíst verzi operačního systému"         $osVersion = "Neznámý"     } else {         $osVersion = $osInfo.Version     }     Write-Host "Verze operačního systému: $osVersion" } catch {     Write-Warning "Chyba při načítání verze operačního systému: $_"     $osVersion = "Neznámé"     Write-Host "Verze operačního systému: $osVersion" }

# 22. LastBootTime # PS Verze: 3.0+ (použijte Get-WmiObject pro verzi 2.0) | Správa: Ne | Požadavky na systém: Žádné try {     $osInfo = Get-CimInstance Win32_OperatingSystem -ErrorAction Stop     if ($null -eq $osInfo -nebo $null -eq $osInfo.LastBootUpTime) {         Write-Warning "Nepodařilo se načíst čas posledního spuštění"         $lastBootTime = $null         Write-Host "Čas posledního spuštění: Není k dispozici"     } else {         $lastBootTime = $osInfo.LastBootUpTime         Write-Host "Čas posledního spuštění: $lastBootTime"     } } catch {     Write-Warning "Chyba při načítání času posledního spuštění: $_"     $lastBootTime = $null     Write-Host "Čas posledního spuštění: Není k dispozici" }

# 23. BaseBoardManufacturer # PS Verze: 3.0+ (použijte Get-WmiObject pro verzi 2.0) | Správa: Ne | Požadavky na systém: Žádné try {     $baseBoard = Get-CimInstance Win32_BaseBoard -ErrorAction Stop     if ($null -eq $baseBoard -nebo [string]::IsNullOrEmpty($baseBoard.Manufacturer)) {         Write-Warning Nelze načíst výrobce základní desky.         $baseBoardManufacturer = "Neznámý"     } else {         $baseBoardManufacturer = $baseBoard.Manufacturer     }     Write-Host "Výrobce základní desky: $baseBoardManufacturer" } catch {     Write-Warning "Chyba při načítání výrobce základní desky: $_"     $baseBoardManufacturer = "Neznámý"     Write-Host "Výrobce základní desky: $baseBoardManufacturer" }

# 24. BaseBoardProduct # PS Verze: 3.0+ (použijte Get-WmiObject pro verzi 2.0) | Správa: Ne | Požadavky na systém: Žádné try {     $baseBoard = Get-CimInstance Win32_BaseBoard -ErrorAction Stop     if ($null -eq $baseBoard -nebo [string]::IsNullOrEmpty($baseBoard.Product)) {         Write-Warning "Nepodařilo se načíst produkt základní desky"         $baseBoardProduct = "Neznámý"     } else {         $baseBoardProduct = $baseBoard.Product     }     Write-Host "Základní deska: $baseBoardProduct" } catch {     Write-Warning "Chyba při načítání produktu základní desky: $_"     $baseBoardProduct = "Neznámý"     Write-Host "Základní deska: $baseBoardProduct"}

Potřebujete další pomoc?

Chcete další možnosti?

Prozkoumejte výhody předplatného, projděte si školicí kurzy, zjistěte, jak zabezpečit své zařízení a mnohem více.