Käytetään kohteeseen
Windows 10 Windows 10, version 1607, all editions Windows 10 Enterprise 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

Alkuperäinen julkaisupäivä: 17. marraskuuta 2025

KB-tunnus: 5072718

Esimerkki suojatun käynnistyksen varastotietojen keräämisen komentosarjasta

Kopioi ja liitä tämä esimerkkikomentosarja ja muokkaa sitä tarpeen mukaan ympäristössäsi: Suojatun käynnistyksen inventaariotietojen keräämisen esimerkkikomentosarja.

Sample_Secure_Boot_Inventory_Data_Collection_script

# 1. HostName # PS-versio: Kaikki | Hallinta: Ei | Järjestelmävaatimukset: Ei mitään kokeile {     $hostname = $env:COMPUTERNAME     if ([string]::IsNullOrEmpty($hostname)) {         Write-Warning "Isäntänimeä ei voitu määrittää"         $hostname = "Tuntematon"     }     Write-Host "Isäntänimi: $hostname" } saalis {     Write-Warning "Virhe haettaessa isäntänimeä: $_"     $hostname = "Virhe"     Write-Host "Isäntänimi: $hostname" }

# 2. CollectionTime # PS-versio: Kaikki | Hallinta: Ei | Järjestelmävaatimukset: Ei mitään kokeile {     $collectionTime = Get-Date     if ($null -eq $collectionTime) {         Write-Warning "Nykyistä päivämäärää/kellonaikaa ei voitu noutaa"         $collectionTime = "Tuntematon"     }     Write-Host "Kokoelma-aika: $collectionTime" } saalis {     Write-Warning "Virhe haettaessa päivämäärää ja kellonaikaa: $_"     $collectionTime = "Virhe"     Write-Host "Keräysaika: $collectionTime" }

# Registry: Secure Boot Main Key (3 values)

# 3. SecureBootEnabled # PS-versio: 3.0+ | Hallinta: Saatetaan tarvita | Järjestelmävaatimukset: UEFI/Secure Boot capable system kokeile {     $secureBootEnabled = Confirm-SecureBootUEFI -ErrorAction Stop     Write-Host "Suojattu käynnistys käytössä: $secureBootEnabled" } saalis {     Write-Warning "Suojatun käynnistyksen tilaa ei voi määrittää cmdlet-komennolla: $_"     # Kokeile rekisterin varaystä     kokeile {         $regValue = Get-ItemProperty -Polku "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\State" -Name UEFISecureBootEnabled -ErrorAction Stop         $secureBootEnabled = [bool]$regValue.UEFISecureBootEnabled         Write-Host "Suojattu käynnistys käytössä: $secureBootEnabled"     } saalis {         Write-Warning "Suojatun käynnistyksen tilaa ei voi määrittää rekisterin kautta. Järjestelmä ei ehkä tue UEFI/Secure Boot -käynnistystä."         $secureBootEnabled = $null         Write-Host "Suojattu käynnistys käytössä: ei käytettävissä"     } }

# 4. HighConfidenceOptOut # PS-versio: Kaikki | Hallinta: Saatetaan tarvita | Järjestelmävaatimukset: Ei mitään kokeile {     $regValue = Get-ItemProperty -Polku "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot" -Name HighConfidenceOptOut -ErrorAction Stop     $highConfidenceOptOut = $regValue.HighConfidenceOptOut     Write-Host "High Confidence Opt Out: $highConfidenceOptOut" } saalis {     Write-Warning "HighConfidenceOptOut-rekisteriavainta ei löydy tai ei ole käytettävissä"     $highConfidenceOptOut = $null     Write-Host "High Confidence Opt Out: Not Available" }

# 5. AvailableUpdates # PS-versio: Kaikki | Hallinta: Saatetaan tarvita | Järjestelmävaatimukset: Ei mitään kokeile {     $regValue = Get-ItemProperty -Polku "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot" -Name AvailableUpdates -ErrorAction Stop     $availableUpdates = $regValue.AvailableUpdates     jos ($null -ne $availableUpdates) {         # Muunna heksadesimaalimuotoon         $availableUpdatesHex = "0x{0:X}" -f $availableUpdates         Write-Host "Käytettävissä olevat Päivitykset: $availableUpdatesHex"     } muu {         Write-Host "Käytettävissä olevat Päivitykset: ei käytettävissä"     } } saalis {     Write-Warning "AvailableUpdates registry key not found or inaccessible"     $availableUpdates = $null     Write-Host "Käytettävissä Päivitykset: ei käytettävissä" }

# Registry: Servicing Key (3 values)

# 6. UEFICA2023Status # PS-versio: Kaikki | Hallinta: Saatetaan tarvita | Järjestelmävaatimukset: Ei mitään kokeile {     $regValue = Get-ItemProperty -Polku "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\Servicing" -Name UEFICA2023Status -ErrorAction Stop     $uefica 2023Status = $regValue.UEFICA2023Status     Write-Host "UEFI CA 2023 Status: $uefica 2023Status" } saalis {     Write-Warning "UEFICA2023Status registry key not found or inaccessible"     $uefica 2023Status = $null     Write-Host "UEFI CA 2023 Status: Not Available" }

# 7. UEFICA2023Capable # PS-versio: Kaikki | Hallinta: Saatetaan tarvita | Järjestelmävaatimukset: Ei mitään kokeile {     $regValue = Get-ItemProperty -Polku "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\Servicing" -Name UEFICA2023Capable -ErrorAction Stop     $uefica 2023Capable = $regValue.UEFICA2023Capable     Write-Host "UEFI CA 2023 Capable: $uefica 2023Capable" } saalis {     Write-Warning "UEFICA2023Kavaimella ei löydy rekisteriavainta"     $uefica 2023Capable = $null     Write-Host "UEFI CA 2023 Capable: Not Available" }

# 8. UEFICA2023Error # PS-versio: Kaikki | Hallinta: Saatetaan tarvita | Järjestelmävaatimukset: Ei mitään kokeile {     $regValue = Get-ItemProperty -Polku "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\Servicing" -Name UEFICA2023Error -ErrorAction Stop     $uefica 2023Virhe = $regValue.UEFICA2023Virhe     Write-Host "UEFI CA 2023 -virhe: $uefica 2023Virhe" } saalis {     Write-Warning "UEFICA2023Error registry key not found or inaccessible"     $uefica 2023Virhe = $null     Write-Host "UEFI CA 2023 -virhe: ei käytettävissä" }

# Registry: Device Attributes (7 values)

# 9. OEMManufacturerName # PS-versio: Kaikki | Hallinta: Saatetaan tarvita | Järjestelmävaatimukset: Ei mitään kokeile {     $regValue = Get-ItemProperty -Polku "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OEMManufacturerName -ErrorAction Stop     $oemManufacturerName = $regValue.OEMManufacturerName     if ([string]::IsNullOrEmpty($oemManufacturerName)) {         Write-Warning "OEMManufacturerName is empty"         $oemManufacturerName = "Tuntematon"     }     Write-Host "OEM-valmistajan nimi: $oemManufacturerName" } saalis {     Write-Warning "OEMManufacturerName registry key not found or inaccessible"     $oemManufacturerName = $null     Write-Host "OEM Manufacturer Name: Not Available" }

# 10. OEMModelSystemFamily # PS-versio: Kaikki | Hallinta: Saatetaan tarvita | Järjestelmävaatimukset: Ei mitään kokeile {     $regValue = Get-ItemProperty -Polku "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OEMModelSystemFamily -ErrorAction Stop     $oemModelSystemFamily = $regValue.OEMModelSystemFamily     if ([string]::IsNullOrEmpty($oemModelSystemFamily)) {         Write-Warning "OEMModelSystemFamily is empty"         $oemModelSystemFamily = "Tuntematon"     }     Write-Host "OEM Model System Family: $oemModelSystemFamily" } saalis {     Write-Warning "OEMModelSystemFamily registry key not found or inaccessible"     $oemModelSystemFamily = $null     Write-Host "OEM Model System Family: Not Available" }

# 11. OEMModelNumber # PS-versio: Kaikki | Hallinta: Saatetaan tarvita | Järjestelmävaatimukset: Ei mitään kokeile {     $regValue = Get-ItemProperty -Polku "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OEMModelNumber -ErrorAction Stop     $oemModelNumber = $regValue.OEMModelNumber     if ([string]::IsNullOrEmpty($oemModelNumber)) {         Write-Warning "OEMModelNumber is empty"         $oemModelNumber = "Tuntematon"     }     Write-Host "OEM Model Number: $oemModelNumber" } saalis {     Write-Warning "OEMModelNumber registry key not found or inaccessible"     $oemModelNumber = $null     Write-Host "OEM Model Number: Not Available" }

# 12. FirmwareVersion # PS-versio: Kaikki | Hallinta: Saatetaan tarvita | Järjestelmävaatimukset: Ei mitään kokeile {     $regValue = Get-ItemProperty -Polku "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name FirmwareVersion -ErrorAction Stop     $firmwareVersion = $regValue.FirmwareVersion     if ([string]::IsNullOrEmpty($firmwareVersion)) {         Write-Warning "Laiteohjelmiston versio on tyhjä"         $firmwareVersion = "Tuntematon"     }     Write-Host "Laiteohjelmistoversio: $firmwareVersion" } saalis {     Write-Warning "FirmwareVersion-rekisteriavainta ei löydy tai ei ole käytettävissä"     $firmwareVersion = $null     Write-Host "Laiteohjelmistoversio: ei saatavilla" }

# 13. FirmwareReleaseDate # PS-versio: Kaikki | Hallinta: Saatetaan tarvita | Järjestelmävaatimukset: Ei mitään kokeile {     $regValue = Get-ItemProperty -Polku "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name FirmwareReleaseDate -ErrorAction Stop     $firmwareReleaseDate = $regValue.FirmwareReleaseDate     if ([string]::IsNullOrEmpty($firmwareReleaseDate)) {         Write-Warning "FirmwareReleaseDate is empty"         $firmwareReleaseDate = "Tuntematon"     }     Write-Host "Laiteohjelmiston julkaisupäivä: $firmwareReleaseDate" } saalis {     Write-Warning "FirmwareReleaseDate registry key not found or inaccessible"     $firmwareReleaseDate = $null     Write-Host "Laiteohjelmiston julkaisupäivä: ei saatavilla" }

# 14. OSArchitecture # PS-versio: Kaikki | Hallinta: Ei | Järjestelmävaatimukset: Ei mitään kokeile {     $osArchitecture = $env:PROCESSOR_ARCHITECTURE     if ([string]::IsNullOrEmpty($osArchitecture)) {         # Kokeile rekisterin varaystä         $regValue = Get-ItemProperty -Polku "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OSArchitecture -ErrorAction Stop         $osArchitecture = $regValue.OSArchitecture     }     if ([string]::IsNullOrEmpty($osArchitecture)) {         Write-Warning "OSArchitecturea ei voitu määrittää"         $osArchitecture = "Tuntematon"     }     Write-Host käyttöjärjestelmän arkkitehtuuri: $osArchitecture } saalis {     Write-Warning "Virhe osarkkitentuurin noutamisessa: $_"     $osArchitecture = "Tuntematon"     Write-Host käyttöjärjestelmäarkkitehtuuri: $osArchitecture }

# 15. CanAttemptUpdateAfter (FILETIME) # PS-versio: Kaikki | Hallinta: Saatetaan tarvita | Järjestelmävaatimukset: Ei mitään kokeile {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name CanAttemptUpdateAfter -ErrorAction Stop     $canAttemptUpdateAfter = $regValue.CanAttemptUpdateAfter     # Muunna FILETIME DateTimeksi, jos se on kelvollinen numero     jos ($null -ne $canAttemptUpdateAfter -and $canAttemptUpdateAfter -is [long]) {         kokeile {             $canAttemptUpdateAfter = [DateTime]::FromFileTime($canAttemptUpdateAfter)         } saalis {             Write-Warning CanAttemptUpdate-funktiota ei voitu muuntaaTiedostonajan jälkeen DateTimeksi         }     }     Write-Host "Can Attempt Update After: $canAttemptUpdateAfter" } saalis {     Write-Warning "CanAttemptUpdateAfter registry key not found or inaccessible"     $canAttemptUpdateAfter = $null     Write-Host "Can Attempt Update After: Not Available" }

# Event Logs: System Log (5 values)

# 16-20. Event Log queries # PS-versio: 3.0+ | Hallinta: Järjestelmäloki saattaa edellyttää | Järjestelmävaatimukset: Ei mitään kokeile {     $allEventIds = @(1801, 1808)     $events = @(Get-WinEvent -FilterHashtable @{LogName='System'; ID=$allEventIds} -MaxEvents 20 -ErrorAction Stop)

    if ($events.Count -eq 0) {         Write-Warning "Ei suojattuja käynnistystapahtumia (1801/1808) löytyi järjestelmälokista"         $latestEventId = $null         $bucketId = $null         $confidence = $null         $event 1801Laske = 0         $event 1808Laske = 0         Write-Host "Viimeisin tapahtumatunnus: ei käytettävissä"         Write-Host "Säilön tunnus: ei käytettävissä"         Write-Host "Luottamus: ei käytettävissä"         Write-Host "Tapahtuman 1801 määrä: 0"         Write-Host "Tapahtuma 1808 Määrä: 0"     } muu {         # 16. LatestEventId         $latestEvent = $events | Sort-Object TimeCreated -Descending | Select-Object -Ensimmäinen 1         jos ($null -eq $latestEvent) {             Write-Warning "Viimeisintä tapahtumaa ei voitu määrittää"             $latestEventId = $null             Write-Host "Viimeisin tapahtumatunnus: ei käytettävissä"         } muu {             $latestEventId = latestEvent.Id $             Write-Host "Viimeisin tapahtumatunnus: $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]. Rajaa()                 Write-Host "Säilön tunnus: $bucketId"             } muu {                 Write-Warning "BucketId not found in event message"                 $bucketId = $null                 Write-Host "Säilön tunnus: ei löydy tapahtumasta"             }         } muu {             Write-Warning "Viimeisin tapahtuma tai viesti on tyhjäarvo, ei voi poimia BucketId".             $bucketId = $null             Write-Host "Säilön tunnus: ei käytettävissä"         }

        # 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]. Rajaa()                 Write-Host "Luottamus: $confidence"             } muu {                 Write-Warning "Luottamustasoa ei löydy tapahtumaviestistä"                 $confidence = $null                 Write-Host "Luottamus: ei löydy tapahtumasta"             }         } muu {             Write-Warning "Viimeisin tapahtuma tai viesti on tyhjäarvo, luottamusväliä ei voi poimia"             $confidence = $null             Write-Host "Luottamus: ei käytettävissä"         }

        # 19. Event1801Count $event 1801Array = @($events | Where-Object {$_. Tunnus -eq 1801})         $event 1801Laske = $event 1801Array.Count         Write-Host "Tapahtuman 1801 määrä: $event 1801Laske"

        # 20. Event1808Count $event 1808Array = @($events | Where-Object {$_. Tunnus -eq 1808})         $event 1808Laske = $event 1808Array.Count         Write-Host "Tapahtuman 1808 määrä: $event 1808Laske"     } } saalis {     Write-Warning "Virhe noudettaessa tapahtumalokeja. Voi edellyttää järjestelmänvalvojan oikeuksia: $_"     $latestEventId = $null     $bucketId = $null     $confidence = $null     $event 1801Laske = 0     $event 1808Laske = 0     Write-Host "Viimeisin tapahtumatunnus: virhe"     Write-Host "Säilön tunnus: virhe"     Write-Host "Luottamus: virhe"     Write-Host "Tapahtuman 1801 määrä: 0"     Write-Host "Tapahtuma 1808 Määrä: 0" }

# WMI/CIM Queries (4 values)

# 21. OSVersion # PS-versio: 3.0+ (käytä Get-WmiObject 2.0:lle) | Hallinta: Ei | Järjestelmävaatimukset: Ei mitään kokeile {     $osInfo = Get-CimInstance Win32_OperatingSystem -ErrorAction Stop     if ($null -eq $osInfo -or [string]::IsNullOrEmpty($osInfo.Version)) {         Write-Warning "Käyttöjärjestelmän versiota ei voitu noutaa"         $osVersion = "Tuntematon"     } muu {         $osVersion = $osInfo.Versio     }     Write-Host käyttöjärjestelmän versio: $osVersion } saalis {     Write-Warning "Virhe haettaessa käyttöjärjestelmän versiota: $_"     $osVersion = "Tuntematon"     Write-Host käyttöjärjestelmän versio: $osVersion }

# 22. LastBootTime # PS-versio: 3.0+ (käytä Get-WmiObject 2.0:lle) | Hallinta: Ei | Järjestelmävaatimukset: Ei mitään kokeile {     $osInfo = Get-CimInstance Win32_OperatingSystem -ErrorAction Stop     jos ($null -eq $osInfo -tai $null -eq $osInfo.LastBootUpTime) {         Write-Warning "Viimeisintä käynnistysaikaa ei voitu noutaa"         $lastBootTime = $null         Write-Host "Viimeinen käynnistysaika: ei käytettävissä"     } muu {         $lastBootTime = $osInfo.LastBootUpTime         Write-Host "Viimeinen käynnistysaika: $lastBootTime"     } } saalis {     Write-Warning "Virhe haettaessa viimeistä käynnistysaikaa: $_"     $lastBootTime = $null     Write-Host "Viimeinen käynnistysaika: ei käytettävissä" }

# 23. BaseBoardManufacturer # PS-versio: 3.0+ (käytä Get-WmiObject 2.0:lle) | Hallinta: Ei | Järjestelmävaatimukset: Ei mitään kokeile {     $baseBoard = Get-CimInstance Win32_BaseBoard -ErrorAction Stop     if ($null -eq $baseBoard -or [string]::IsNullOrEmpty($baseBoard.Manufacturer)) {         Write-Warning "Peruslevyn valmistajaa ei voitu noutaa"         $baseBoardManufacturer = "Tuntematon"     } muu {         $baseBoardManufacturer = $baseBoard.Manufacturer     }     Write-Host "Baseboard Manufacturer: $baseBoardManufacturer" } saalis {     Write-Warning "Virhe haettaessa peruslevyn valmistajaa: $_"     $baseBoardManufacturer = "Tuntematon"     Write-Host "Baseboard Manufacturer: $baseBoardManufacturer" }

# 24. BaseBoardProduct # PS-versio: 3.0+ (käytä Get-WmiObject 2.0:lle) | Hallinta: Ei | Järjestelmävaatimukset: Ei mitään kokeile {     $baseBoard = Get-CimInstance Win32_BaseBoard -ErrorAction Stop     if ($null -eq $baseBoard -or [string]::IsNullOrEmpty($baseBoard.Product)) {         Write-Warning "Peruslevytuotetta ei voitu noutaa"         $baseBoardProduct = "Tuntematon"     } muu {         $baseBoardProduct = $baseBoard.Product     }     Write-Host "Baseboard Product: $baseBoardProduct" } saalis {     Write-Warning "Virhe perustaulutuotteen noutamisessa: $_"     $baseBoardProduct = "Tuntematon"     Write-Host "Baseboard-tuote: $baseBoardProduct"}

Tarvitsetko lisäohjeita?

Haluatko lisää vaihtoehtoja?

Tutustu tilausetuihin, selaa harjoituskursseja, opi suojaamaan laitteesi ja paljon muuta.