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"}