Taikoma
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

Pradinė publikavimo data: 2025 m. lapkričio 17 d.

KB ID: 5072718

Saugiosios įkrovos atsargų duomenų rinkimo scenarijaus pavyzdys

Nukopijuokite ir įklijuokite šį scenarijaus pavyzdį ir modifikuokite, kiek reikia jūsų aplinkai: saugaus paleidimo atsargų duomenų rinkimo scenarijaus pavyzdys.

Sample_Secure_Boot_Inventory_Data_Collection_script

# 1. HostName # PS Versija: Visi | Administratorius: Ne | Sistemos reikalavimai: nėra išbandykite {     $hostname = $env:COMPUTERNAME     if ([string]::IsNullOrEmpty($hostname)) {         Write-Warning "Nepavyko nustatyti pagrindinio kompiuterio vardo"         $hostname = "Nežinoma"     2016     Write-Host "Hostname: $hostname" } sugauti {     Write-Warning "Klaida nuskaitant pagrindinio kompiuterio vardą: $_"     $hostname = "Klaida"     Write-Host "Hostname: $hostname" }

# 2. CollectionTime # PS Versija: Visi | Administratorius: Ne | Sistemos reikalavimai: nėra išbandykite {     $collectionTime = Gavimo data     jei ($null -eq $collectionTime) {         Write-Warning "Nepavyko nuskaityti dabartinės datos / laiko"         $collectionTime = "Nežinoma"     2016     Write-Host "Collection Time: $collectionTime" } sugauti {     Write-Warning "Klaida nuskaitant datą / laiką: $_"     $collectionTime = "Klaida"     Write-Host "Collection Time: $collectionTime" }

# Registry: Secure Boot Main Key (3 values)

# 3. SecureBootEnabled # PS Versija: 3.0+ | Administratorius: Gali reikėti | Sistemos reikalavimai: UEFI / saugiosios įkrovos palaikanti sistema išbandykite {     $secureBootEnabled = Confirm-SecureBootUEFI -ErrorAction Stop     Write-Host "Saugi įkrova įgalinta: $secureBootEnabled" } sugauti {     Write-Warning "Nepavyko nustatyti saugiosios įkrovos būsenos naudojant cmdlet: $_"     # Išbandykite atsarginį registrą     išbandykite {         $regValue = Get-ItemProperty -Kelias "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\State" -Name UEFISecureBootEnabled -ErrorAction Stop         $secureBootEnabled = [Bulio logika]$regValue.UEFISecureBootEnabled         Write-Host "Saugi įkrova įgalinta: $secureBootEnabled"     } sugauti {         Write-Warning "Nepavyksta nustatyti saugiosios įkrovos būsenos naudojant registrą. Sistema gali nepalaikyti UEFI / saugiosios įkrovos."         $secureBootEnabled = $null         Write-Host "Saugi įkrova įgalinta: nepasiekiama"     2016 }

# 4. HighConfidenceOptOut # PS Versija: Visi | Administratorius: Gali reikėti | Sistemos reikalavimai: nėra išbandykite {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot" -Name HighConfidenceOptOut -ErrorAction Stop     $highConfidenceOptOut = $regValue.HighConfidenceOptOut     Write-Host "Didelio patikimumo atsisakymas: $highConfidenceOptOut" } sugauti {     Write-Warning "HighConfidenceOptOut" registro raktas nerastas arba nepasiekiamas"     $highConfidenceOptOut = $null     Write-Host "Didelio patikimumo atsisakymas: nepasiekiama" }

# 5. AvailableUpdates # PS Versija: Visi | Administratorius: Gali reikėti | Sistemos reikalavimai: nėra išbandykite {     $regValue = Get-ItemProperty -Kelias "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot" -Name AvailableUpdates -ErrorAction Stop     $availableUpdates = $regValue.AvailableUpdates     jei ($null -ne $availableUpdates) {         # Konvertuoti į šešioliktainį formatą         $availableUpdatesHex = "0x{0:X}" -f $availableUpdates         Write-Host "Available Naujinimai: $availableUpdatesHex"     } dar {         Write-Host "Available Naujinimai: Not Available"     2016 } sugauti {     Write-Warning "AvailableUpdates" registro raktas nerastas arba nepasiekiamas"     $availableUpdates = $null     Write-Host "Available Naujinimai: Not Available" }

# Registry: Servicing Key (3 values)

# 6. UEFICA2023Status # PS Versija: Visi | Administratorius: Gali reikėti | Sistemos reikalavimai: nėra išbandykite {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\Servicing" -Name UEFICA2023Status -ErrorAction Stop     $uefica 2023Status = $regValue.UEFICA2023Status     Write-Host "UEFI CA 2023 būsena: $uefica 2023Status" } sugauti {     Write-Warning "UEFICA2023Status registro raktas nerastas arba nepasiekiamas"     $uefica 2023Status = $null     Write-Host "UEFI CA 2023 būsena: nepasiekiama" }

# 7. UEFICA2023Capable # PS Versija: Visi | Administratorius: Gali reikėti | Sistemos reikalavimai: nėra išbandykite {     $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" } sugauti {     Write-Warning "UEFICA2023Capable registro raktas nerastas arba nepasiekiamas"     $uefica 2023Capable = $null     Write-Host "UEFI CA 2023 Capable: Not Available" }

# 8. UEFICA2023Error # PS Versija: Visi | Administratorius: Gali reikėti | Sistemos reikalavimai: nėra išbandykite {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\Servicing" -Name UEFICA2023Error -ErrorAction Stop     $uefica 2023Error = $regValue.UEFICA2023Error     Write-Host "UEFI CA 2023 klaida: $uefica 2023Error" } sugauti {     Write-Warning "UEFICA2023Error registro raktas nerastas arba nepasiekiamas"     $uefica 2023Error = $null     Write-Host "UEFI CA 2023 klaida: nepasiekiama" }

# Registry: Device Attributes (7 values)

# 9. OEMManufacturerName # PS Versija: Visi | Administratorius: Gali reikėti | Sistemos reikalavimai: nėra išbandykite {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OEMManufacturerName -ErrorAction Stop     $oemManufacturerName = $regValue.OEMManufacturerName     if ([string]::IsNullOrEmpty($oemManufacturerName)) {         Write-Warning "OEMManufacturerName is empty"         $oemManufacturerName = "Nežinoma"     2016     Write-Host "OEM Manufacturer Name: $oemManufacturerName" } sugauti {     Write-Warning "OEMManufacturerName" registro raktas nerastas arba nepasiekiamas"     $oemManufacturerName = $null     Write-Host "OĮG gamintojo pavadinimas: nepasiekiamas" }

# 10. OEMModelSystemFamily # PS Versija: Visi | Administratorius: Gali reikėti | Sistemos reikalavimai: nėra išbandykite {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OEMModelSystemFamily -ErrorAction Stop     $oemModelSystemFamily = $regValue.OEMModelSystemFamily     jei ([eilutė]::IsNullOrEmpty($oemModelSystemFamily)) {         Write-Warning "OEMModelSystemFamily is empty"         $oemModelSystemFamily = "Nežinoma"     2016     Write-Host "OEM Model System Family: $oemModelSystemFamily" } sugauti {     Write-Warning "OEMModelSystemFamily registro raktas nerastas arba nepasiekiamas"     $oemModelSystemFamily = $null     Write-Host "OEM Model System Family: Not Available" }

# 11. OEMModelNumber # PS Versija: Visi | Administratorius: Gali reikėti | Sistemos reikalavimai: nėra išbandykite {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OEMModelNumber -ErrorAction Stop     $oemModelNumber = $regValue.OEMModelNumber     jei ([eilutė]::IsNullOrEmpty($oemModelNumber)) {         Write-Warning "OEMModelNumber is empty"         $oemModelNumber = "Nežinoma"     2016     Write-Host "OEM Model Number: $oemModelNumber" } sugauti {     Write-Warning "OEMModelNumber registro raktas nerastas arba nepasiekiamas"     $oemModelNumber = $null     Write-Host "OĮG modelio numeris: nepasiekiamas" }

# 12. FirmwareVersion # PS Versija: Visi | Administratorius: Gali reikėti | Sistemos reikalavimai: nėra išbandykite {     $regValue = Get-ItemProperty -Kelias "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name FirmwareVersion -ErrorAction Stop     $firmwareVersion = $regValue.FirmwareVersion     jei ([eilutė]::IsNullOrEmpty($firmwareVersion)) {         Write-Warning "FirmwareVersion" tuščias"         $firmwareVersion = "Nežinoma"     2016     Write-Host "Programinės-aparatinės įrangos versija: $firmwareVersion" } sugauti {     Write-Warning "FirmwareVersion" registro raktas nerastas arba nepasiekiamas"     $firmwareVersion = $null     Write-Host "Programinės-aparatinės įrangos versija: nepasiekiama" }

# 13. FirmwareReleaseDate # PS Versija: Visi | Administratorius: Gali reikėti | Sistemos reikalavimai: nėra išbandykite {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name FirmwareReleaseDate -ErrorAction Stop     $firmwareReleaseDate = $regValue.FirmwareReleaseDate     jei ([eilutė]::IsNullOrEmpty($firmwareReleaseDate)) {         Write-Warning "FirmwareReleaseDate is empty"         $firmwareReleaseDate = "Nežinoma"     2016     Write-Host "Programinės-aparatinės įrangos išleidimo data: $firmwareReleaseDate" } sugauti {     Write-Warning "FirmwareReleaseDate registro raktas nerastas arba nepasiekiamas"     $firmwareReleaseDate = $null     Write-Host "Programinės-aparatinės įrangos išleidimo data: nepasiekiama" }

# 14. OSArchitecture # PS Versija: Visi | Administratorius: Ne | Sistemos reikalavimai: nėra išbandykite {     $osArchitecture = $env:PROCESSOR_ARCHITECTURE     jei ([eilutė]::IsNullOrEmpty($osArchitecture)) {         # Išbandykite atsarginį registrą         $regValue = Get-ItemProperty -Kelias "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OSArchitecture -ErrorAction Stop         $osArchitecture = $regValue.OSArchitecture     2016     jei ([eilutė]::IsNullOrEmpty($osArchitecture)) {         Write-Warning "Nepavyko nustatyti OSArchitecture"         $osArchitecture = "Nežinoma"     2016     Write-Host "OS Architecture: $osArchitecture" } sugauti {     Write-Warning "Klaida nuskaitant OSArchitecture: $_"     $osArchitecture = "Nežinoma"     Write-Host "OS Architecture: $osArchitecture" }

# 15. CanAttemptUpdateAfter (FILETIME) # PS Versija: Visi | Administratorius: Gali reikėti | Sistemos reikalavimai: nėra išbandykite {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name CanAttemptUpdateAfter -ErrorAction Stop     $canAttemptUpdateAfter = $regValue.CanAttemptUpdateAfter     # Konvertuoti FILETIME į DateTime, jei tai yra galiojantis skaičius     jei ($null -ne $canAttemptUpdateAfter ir $canAttemptUpdateAfter -yra [long]) {         išbandykite {             $canAttemptUpdateAfter = [DateTime]::FromFileTime($canAttemptUpdateAfter)         } sugauti {             Write-Warning "Nepavyko konvertuoti CanAttemptUpdateAfter FILETIME į DateTime"         2016     2016     Write-Host "Gali bandyti atnaujinti po: $canAttemptUpdateAfter" } sugauti {     Write-Warning "CanAttemptUpdateAfter registro raktas nerastas arba nepasiekiamas"     $canAttemptUpdateAfter = $null     Write-Host "Gali bandyti naujinti po: nepasiekiama" }

# Event Logs: System Log (5 values)

# 16-20. Event Log queries # PS Versija: 3.0+ | Administratorius: gali reikėti sistemos žurnalui | Sistemos reikalavimai: nėra išbandykite {     $allEventIds = @(1801, 1808)     $events = @(Get-WinEvent -FilterHashtable @{LogName='System'; ID=$allEventIds} -MaxEvents 20 -ErrorAction Stop)

    if ($events.Count -eq 0) {         Write-Warning "Nėra saugiosios įkrovos įvykių (1801/1808), rasti sistemos žurnale"         $latestEventId = $null         $bucketId = $null         $confidence = $null         $event 1801Count = 0         $event 1808Count = 0         Write-Host "Naujausias įvykio ID: nepasiekiamas"         Write-Host "Talpyklos ID: nepasiekiamas"         Write-Host "Pasitikėjimas: nepasiekiama"         Write-Host "1801 įvykis: 0"         Write-Host "1808 įvykis: 0"     } dar {         # 16. Vėliausi eventId         $latestEvent = $events | Sort-Object TimeCreated -Descending | Select-Object – pirmas 1         jei ($null -eq $latestEvent) {             Write-Warning "Nepavyko nustatyti naujausio įvykio"             $latestEventId = $null             Write-Host "Vėliausio įvykio ID: nepasiekiamas"         } dar {             $latestEventId = $latestEvent.Id             Write-Host "Naujausias įvykio ID: $latestEventId"         }

        # 17. BucketID - Extracted from Event 1801/1808 jei ($null -ne $latestEvent -and $null -ne $latestEvent.Message) {             jei ($latestEvent.Message -match 'BucketId:\s*(.+)') {                 $bucketId = $matches[1]. Trim()                 Write-Host "Segmento ID: $bucketId"             } dar {                 Write-Warning "BucketId nerastas įvykio pranešime"                 $bucketId = $null                 Write-Host "Segmento ID: nerastas įvykyje"             2016         } dar {             Write-Warning "Naujausias įvykis arba pranešimas yra nulinis, negalima išskleisti BucketId"             $bucketId = $null             Write-Host "Talpyklos ID: nepasiekiamas"         }

        # 18. Confidence - Extracted from Event 1801/1808 jei ($null -ne $latestEvent -and $null -ne $latestEvent.Message) {             jei ($latestEvent.Message -match 'BucketConfidenceLevel:\s*(.+)') {                 $confidence = $matches[1]. Trim()                 Write-Host "Pasitikėjimas: $confidence"             } dar {                 Write-Warning "Patikimumo lygis nerastas įvykio pranešime"                 $confidence = $null                 Write-Host "Pasitikėjimas: nerastas įvykyje"             2016         } dar {             Write-Warning "Naujausias įvykis arba pranešimas yra nulinis, negalima išskleisti patikimumo"             $confidence = $null             Write-Host "Patikimumas: nepasiekiamas"         }

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

        # 20. Event1808Count $event 1808Array = @($events | Where-Object {$_. Id -eq 1808})         $event 1808Count = $event 1808Array.Count         Write-Host "Event 1808 Count: $event 1808Count"     2016 } sugauti {     Write-Warning "Klaida nuskaitant įvykių žurnalus. Gali reikėti administratoriaus teisių: $_"     $latestEventId = $null     $bucketId = $null     $confidence = $null     $event 1801Count = 0     $event 1808Count = 0     Write-Host "Naujausias įvykio ID: klaida"     Write-Host "Talpyklos ID: klaida"     Write-Host "Pasitikėjimas: klaida"     Write-Host "1801 įvykis: 0"     Write-Host "Event 1808 Count: 0" }

# WMI/CIM Queries (4 values)

# 21. OSVersion # PS versija: 3.0+ (naudokite Get-WmiObject 2.0 versijai) | Administratorius: Ne | Sistemos reikalavimai: nėra išbandykite {     $osInfo = Get-CimInstance Win32_OperatingSystem -ErrorAction Stop     if ($null -eq $osInfo -arba [string]::IsNullOrEmpty($osInfo.Version)) {         Write-Warning "Nepavyko nuskaityti OS versijos"         $osVersion = "Nežinoma"     } dar {         $osVersion = $osInfo.Version     2016     Write-Host "OS versija: $osVersion" } sugauti {     Write-Warning "Klaida nuskaitant OS versiją: $_"     $osVersion = "Nežinoma"     Write-Host "OS versija: $osVersion" }

# 22. LastBootTime # PS versija: 3.0+ (naudokite Get-WmiObject 2.0 versijai) | Administratorius: Ne | Sistemos reikalavimai: nėra išbandykite {     $osInfo = Get-CimInstance Win32_OperatingSystem -ErrorAction Stop     jei ($null -eq $osInfo arba $null -eq $osInfo.LastBootUpTime) {         Write-Warning "Nepavyko gauti paskutinės įkrovos laiko"         $lastBootTime = $null         Write-Host "Paskutinės įkrovos laikas: nepasiekiama"     } dar {         $lastBootTime = $osInfo.LastBootUpTime         Write-Host "Paskutinio paleidimo laikas: $lastBootTime"     2016 } sugauti {     Write-Warning "Klaida nuskaitant paskutinės įkrovos laiką: $_"     $lastBootTime = $null     Write-Host "Paskutinės įkrovos laikas: nepasiekiama" }

# 23. BaseBoardManufacturer # PS versija: 3.0+ (naudokite Get-WmiObject 2.0 versijai) | Administratorius: Ne | Sistemos reikalavimai: nėra išbandykite {     $baseBoard = Get-CimInstance Win32_BaseBoard -ErrorAction Stop     jei ($null -eq $baseBoard arba [eilutė]::IsNullOrEmpty($baseBoard.Manufacturer)) {         Write-Warning "Nepavyko nuskaityti bazinių lentų gamintojo"         $baseBoardManufacturer = "Nežinoma"     } dar {         $baseBoardManufacturer = $baseBoard.Manufacturer     2016     Write-Host "Baseboard Manufacturer: $baseBoardManufacturer" } sugauti {     Write-Warning "Klaida nuskaitant baseboard gamintoją: $_"     $baseBoardManufacturer = "Nežinoma"     Write-Host "Baseboard Manufacturer: $baseBoardManufacturer" }

# 24. BaseBoardProduct # PS versija: 3.0+ (naudokite Get-WmiObject 2.0 versijai) | Administratorius: Ne | Sistemos reikalavimai: nėra išbandykite {     $baseBoard = Get-CimInstance Win32_BaseBoard -ErrorAction Stop     if ($null -eq $baseBoard -arba [string]::IsNullOrEmpty($baseBoard.Product)) {         Write-Warning "Nepavyko nuskaityti baseboard produkto"         $baseBoardProduct = "Nežinoma"     } dar {         $baseBoardProduct = $baseBoard.Product     2016     Write-Host "Baseboard Product: $baseBoardProduct" } sugauti {     Write-Warning "Klaida nuskaitant baseboard produktą: $_"     $baseBoardProduct = "Nežinoma"     Write-Host "Baseboard Product: $baseBoardProduct"}

Reikia daugiau pagalbos?

Norite daugiau parinkčių?

Sužinokite apie prenumeratos pranašumus, peržiūrėkite mokymo kursus, sužinokite, kaip apsaugoti savo įrenginį ir kt.