Avaldamise algne kuupäev: 17. november 2025
KB ID: 5072718
Secure Boot Inventory Data Collectioni skripti näidis
Kopeerige ja kleepige see näidisskript ning muutke seda vastavalt oma keskkonnale: turvalise algkäivituse inventuuri andmete kogumise näidisskript.
Sample_Secure_Boot_Inventory_Data_Collection_script
# 1. HostName PS-i versioon: kõik | Haldus: ei | Süsteeminõuded: pole proovige { $hostname = $env:COMPUTERNAME if ([string]::IsNullOrEmpty($hostname)) { Write-Warning "Hostinime ei saanud määratleda" $hostname = "Tundmatu" } Write-Host "Hostname: $hostname" (Hostinimi: $hostname) } püüdmine { Write-Warning "Hostinime toomisel ilmnes tõrge: $_" $hostname = "Tõrge" Write-Host "Hostname: $hostname" }
# 2. CollectionTime PS-i versioon: kõik | Haldus: ei | Süsteeminõuded: pole proovige { $collectionTime = toomiskuupäev if ($null -eq $collectionTime) { Write-Warning "Praegust kuupäeva/kellaaega ei saanud tuua" $collectionTime = "Tundmatu" } Write-Host "Kogumisaeg: $collectionTime" } püüdmine { Write-Warning "Kuupäeva/kellaaja toomisel ilmnes tõrge: $_" $collectionTime = "Tõrge" Write-Host "Kogumisaeg: $collectionTime" }
# Registry: Secure Boot Main Key (3 values)
# 3. SecureBootEnabled # PS versioon: 3.0+ | Haldus: võib olla vajalik | Süsteeminõuded: UEFI/Secure Booti toega süsteem proovige { $secureBootEnabled = Confirm-SecureBootUEFI –ErrorAction Stop Write-Host "Secure Boot Enabled: $secureBootEnabled" } püüdmine { Write-Warning "Secure Booti olekut ei saa cmdlet-käsu kaudu määratleda: $_" # Proovige registri taandeid proovige { $regValue = Get-ItemProperty -Tee "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\State" -Name UEFISecureBootEnabled -ErrorAction Stop $secureBootEnabled = [bool]$regValue.UEFISecureBootEnabled Write-Host "Secure Boot Enabled: $secureBootEnabled" } püüdmine { Write-Warning "Secure Booti olekut ei saa registri kaudu määratleda. Süsteem ei pruugi UEFI-liidese/secure Booti toetada." $secureBootEnabled = $null Write-Host "Turvaline käivitamine lubatud: pole saadaval" } }
# 4. HighConfidenceOptOut PS-i versioon: kõik | Haldus: võib olla vajalik | Süsteeminõuded: pole proovige { $regValue = Get-ItemProperty -tee "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot" -Name HighConfidenceOptOut –ErrorAction Stop $highConfidenceOptOut = $regValue.HighConfidenceOptOut Write-Host "Väga kindlustundega loobumine: $highConfidenceOptOut" } püüdmine { Write-Warning "HighConfidenceOptOut registrivõtit ei leitud või puudub juurdepääs" $highConfidenceOptOut = $null Write-Host "Väga kindlustundega loobumine: pole saadaval" }
# 5. AvailableUpdates PS-i versioon: kõik | Haldus: võib olla vajalik | Süsteeminõuded: pole proovige { $regValue = Get-ItemProperty -tee "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot" -Name AvailableUpdates -ErrorAction Stop $availableUpdates = $regValue.AvailableUpdates if ($null -ne $availableUpdates) { # Teisenda kuueteistkümnendvormingusse $availableUpdatesHex = "0x{0:X}" -f $availableUpdates Write-Host "Saadaolevad Teabevärskendused: $availableUpdatesHex" } else { Write-Host "Saadaval Teabevärskendused: pole saadaval" } } püüdmine { Write-Warning "AvailableUpdates registrivõtit ei leitud või puudub juurdepääs" $availableUpdates = $null Write-Host "Saadaval Teabevärskendused: pole saadaval" }
# Registry: Servicing Key (3 values)
# 6. UEFICA2023Status PS-i versioon: kõik | Haldus: võib olla vajalik | Süsteeminõuded: pole proovige { $regValue = Get-ItemProperty -tee "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\Servicing" -Name UEFICA2023Status –ErrorAction Stop $uefica 2023Status = $regValue.UEFICA2023Status Write-Host "UEFI CA 2023 olek: $uefica 2023Status" } püüdmine { Write-Warning "UEFICA2023Status registrivõtit ei leitud või puudub juurdepääs" $uefica 2023Status = $null Write-Host "UEFI CA 2023 olek: pole saadaval" }
# 7. UEFICA2023Capable PS-i versioon: kõik | Haldus: võib olla vajalik | Süsteeminõuded: pole proovige { $regValue = Get-ItemProperty -Tee "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\Servicing" -Name UEFICA2023Capable –ErrorAction Stop $uefica 2023Capable = $regValue.UEFICA2023Capable Write-Host "UEFI CA 2023 capable: $uefica 2023Capable" } püüdmine { Write-Warning "UEFICA2023Capable registry key not found or inaccessible" $uefica 2023Capable = $null Write-Host "UEFI CA 2023 toega: pole saadaval" }
# 8. UEFICA2023Error PS-i versioon: kõik | Haldus: võib olla vajalik | Süsteeminõuded: pole proovige { $regValue = Get-ItemProperty -Tee "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\Servicing" -Name UEFICA2023Error -ErrorAction Stop $uefica 2023Error = $regValue.UEFICA2023Error Write-Host "UEFI CA 2023 tõrge: $uefica 2023Error" } püüdmine { Write-Warning "UEFICA2023Tõrke registrivõtit ei leitud või puudub juurdepääs" $uefica 2023Error = $null Write-Host "UEFI CA 2023 tõrge: pole saadaval" }
# Registry: Device Attributes (7 values)
# 9. OEMManufacturerName PS-i versioon: kõik | Haldus: võib olla vajalik | Süsteeminõuded: pole proovige { $regValue = Get-ItemProperty -Tee "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OEMManufacturerName –ErrorAction Stop $oemManufacturerName = $regValue.OEMManufacturerName if ([string]::IsNullOrEmpty($oemManufacturerName)) { Write-Warning "OEMManufacturerName is empty" ("OEMManufacturerName is empty") $oemManufacturerName = "Tundmatu" } Write-Host "OEM-i tootja nimi: $oemManufacturerName" } püüdmine { Write-Warning "OEMManufacturerName registrivõtit ei leitud või puudub juurdepääs" $oemManufacturerName = $null Write-Host "OEM-i tootja nimi: pole saadaval" }
# 10. OEMModelSystemFamily PS-i versioon: kõik | Haldus: võib olla vajalik | Süsteeminõuded: pole proovige { $regValue = Get-ItemProperty -tee "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OEMModelSystemFamily -ErrorAction Stop $oemModelSystemFamily = $regValue.OEMModelSystemFamily if ([string]::IsNullOrEmpty($oemModelSystemFamily)) { Write-Warning "OEMModelSystemFamily is empty" (OEMModelSystemFamily on tühi) $oemModelSystemFamily = "Tundmatu" } Write-Host "OEM-i mudeli süsteemipere: $oemModelSystemFamily" } püüdmine { Write-Warning "OEMModelSystemFamily registrivõtit ei leitud või puudub juurdepääs" $oemModelSystemFamily = $null Write-Host "OEM-i mudeli süsteemipere: pole saadaval" }
# 11. OEMModelNumber PS-i versioon: kõik | Haldus: võib olla vajalik | Süsteeminõuded: pole proovige { $regValue = Get-ItemProperty -Tee "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OEMModelNumber -ErrorAction Stop $oemModelNumber = $regValue.OEMModelNumber if ([string]::IsNullOrEmpty($oemModelNumber)) { Write-Warning "OEMModelNumber on tühi" $oemModelNumber = "Tundmatu" } Write-Host "OEM-mudeli number: $oemModelNumber" } püüdmine { Write-Warning "OEMModelNumber registrivõtit ei leitud või puudub juurdepääs" $oemModelNumber = $null Write-Host "OEM-i mudeli number: pole saadaval" }
# 12. FirmwareVersion PS-i versioon: kõik | Haldus: võib olla vajalik | Süsteeminõuded: pole proovige { $regValue = Get-ItemProperty -Tee "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name FirmwareVersion -ErrorAction Stop $firmwareVersion = $regValue.FirmwareVersion if ([string]::IsNullOrEmpty($firmwareVersion)) { Write-Warning "FirmwareVersion is empty" (Püsivaraversioon on tühi) $firmwareVersion = "Tundmatu" } Write-Host "Püsivara versioon: $firmwareVersion" } püüdmine { Write-Warning "FirmwareVersion registrivõtit ei leitud või puudub juurdepääs" $firmwareVersion = $null Write-Host "Püsivara versioon: pole saadaval" }
# 13. FirmwareReleaseDate PS-i versioon: kõik | Haldus: võib olla vajalik | Süsteeminõuded: pole proovige { $regValue = Get-ItemProperty -tee "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name FirmwareReleaseDate –ErrorAction Stop $firmwareReleaseDate = $regValue.FirmwareReleaseDate if ([string]::IsNullOrEmpty($firmwareReleaseDate)) { Write-Warning "FirmwareReleaseDate is empty" (PüsivaraReleaseDate on tühi) $firmwareReleaseDate = "Tundmatu" } Write-Host "Püsivara väljaandmiskuupäev: $firmwareReleaseDate" } püüdmine { Write-Warning "FirmwareReleaseDate registry key not found or inaccessible" $firmwareReleaseDate = $null Write-Host "Püsivara väljaandmiskuupäev: pole saadaval" }
# 14. OSArchitecture PS-i versioon: kõik | Haldus: ei | Süsteeminõuded: pole proovige { $osArchitecture = $env:PROCESSOR_ARCHITECTURE if ([string]::IsNullOrEmpty($osArchitecture)) { # Proovige registri taandeid $regValue = Get-ItemProperty -tee "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OSArchitecture -ErrorAction Stop $osArchitecture = $regValue.OSArchitecture } if ([string]::IsNullOrEmpty($osArchitecture)) { Write-Warning "OSArchitecture'i ei saanud määratleda" $osArchitecture = "Tundmatu" } Write-Host "OS-i arhitektuur: $osArchitecture" } püüdmine { Write-Warning "OSArchitecture toomisel ilmnes tõrge: $_" $osArchitecture = "Tundmatu" Write-Host "OS-i arhitektuur: $osArchitecture" }
# 15. CanAttemptUpdateAfter (FILETIME) PS-i versioon: kõik | Haldus: võib olla vajalik | Süsteeminõuded: pole proovige { $regValue = Get-ItemProperty -tee "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name CanAttemptUpdateAfter –ErrorAction Stop $canAttemptUpdateAfter = $regValue.CanAttemptUpdateAfter # Teisenda FILETIME kehtivaks arvuks DateTime kui ($null -ne $canAttemptUpdateAfter -ja $canAttemptUpdateAfter -on [pikk]) { proovige { $canAttemptUpdateAfter = [DateTime]::FromFileTime($canAttemptUpdateAfter) } püüdmine { Write-Warning "CanAttemptUpdateAfter FILETIME'i ei saanud dateTime'iks teisendada" } } Write-Host "Võib proovida värskendamist pärast: $canAttemptUpdateAfter" } püüdmine { Write-Warning "CanAttemptUpdateAfter registry key not found or inaccessible" $canAttemptUpdateAfter = $null Write-Host "Võib proovida värskendamist pärast: pole saadaval" }
# Event Logs: System Log (5 values)
# 16-20. Event Log queries # PS versioon: 3.0+ | Haldus: võib olla vajalik süsteemilogi | Süsteeminõuded: pole proovige { $allEventIds = @(1801; 1808) $events = @(Get-WinEvent -FilterHashtable @{LogName='System'; ID=$allEventIds} -MaxEvents 20 -ErrorAction Stop)
if ($events.Count -eq 0) { Write-Warning süsteemilogist "Secure Booti sündmusi (1801/1808) ei leitud" $latestEventId = $null $bucketId = $null $confidence = $null $event 1801Kogum = 0 $event 1808Count = 0 Write-Host "Uusim sündmuse ID: pole saadaval" Write-Host "Salve ID: pole saadaval" Write-Host "Usaldus: pole saadaval" Write-Host "Sündmuse 1801 arv: 0" Write-Host "Sündmuse 1808 arv: 0" } else { # 16. LatestEventId $latestEvent = $events | Sort-Object – laskuv järjestus | Select-Object –esimene 1 if ($null -eq $latestEvent) { Write-Warning "Uusimat sündmust ei saanud määratleda" $latestEventId = $null Write-Host "Uusim sündmuse ID: pole saadaval" } else { $latestEventId = $latestEvent.Id Write-Host "Uusim sündmuse ID: $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]. Trimmi() Write-Host "Salve ID: $bucketId" } else { Write-Warning "BucketId-d ei leitud sündmusesõnumist" $bucketId = $null Write-Host "Salve ID: sündmusest ei leitud" } } else { Write-Warning "Uusim sündmus või sõnum on nullväärtusega, ei saa ekstraktida BucketId-d" $bucketId = $null Write-Host "Salve ID: pole saadaval" }
# 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]. Trimmi() Write-Host "Usaldus: $confidence" } else { Write-Warning "Sündmusesõnumist ei leitud usaldustaset" $confidence = $null Write-Host "Usaldus: sündmusest ei leitud" } } else { Write-Warning "Viimane sündmus või sõnum on nullväärtusega, ei saa ekstraktida usaldust" $confidence = $null Write-Host "Usaldus: pole saadaval" }
# 19. Event1801Count $event 1801Array = @($events | Where-Object {$_. ID -eq 1801}) $event 1801Count = $event 1801Array.Count Write-Host "Sündmuse 1801 arv: $event 1801Count"
# 20. Event1808Count $event 1808Array = @($events | Where-Object {$_. ID -eq 1808}) $event 1808Count = $event 1808Array.Count Write-Host "Sündmuse 1808 arv: $event 1808Count" } } püüdmine { Write-Warning "Sündmuselogide toomisel ilmnes tõrge. Võib vajada administraatoriõigusi: $_" $latestEventId = $null $bucketId = $null $confidence = $null $event 1801Kogum = 0 $event 1808Count = 0 Write-Host "Uusim sündmuse ID: tõrge" Write-Host "Salve ID: tõrge" Write-Host "Confidence: Error" (Usaldusväärsus: tõrge) Write-Host "Sündmuse 1801 arv: 0" Write-Host "Sündmuse 1808 arv: 0" }
# WMI/CIM Queries (4 values)
# 21. OSVersion # PS Versioon: 3.0+ (Get-WmiObject kasutamine versioonis 2.0) | Haldus: ei | Süsteeminõuded: pole proovige { $osInfo = Get-CimInstance Win32_OperatingSystem –ErrorAction Stop if ($null -eq $osInfo -või [string]::IsNullOrEmpty($osInfo.Version)) { Write-Warning "OS-i versiooni ei saanud tuua" $osVersion = "Tundmatu" } else { $osVersion = $osInfo.Version } Write-Host "OS-i versioon: $osVersion" } püüdmine { Write-Warning "Os-i versiooni toomisel ilmnes tõrge: $_" $osVersion = "Tundmatu" Write-Host "OS-i versioon: $osVersion" }
# 22. LastBootTime # PS Versioon: 3.0+ (Get-WmiObject kasutamine versioonis 2.0) | Haldus: ei | Süsteeminõuded: pole proovige { $osInfo = Get-CimInstance Win32_OperatingSystem –ErrorAction Stop if ($null -eq $osInfo -or $null -eq $osInfo.LastBootUpTime) { Write-Warning "Viimast algkäivitusaega ei saanud tuua" $lastBootTime = $null Write-Host "Viimane algkäivitusaeg: pole saadaval" } else { $lastBootTime = $osInfo.LastBootUpTime Write-Host "Viimane algkäivitusaeg: $lastBootTime" } } püüdmine { Write-Warning "Tõrge viimase käivitusaja toomisel: $_" $lastBootTime = $null Write-Host "Viimane algkäivitusaeg: pole saadaval" }
# 23. BaseBoardManufacturer # PS Versioon: 3.0+ (Get-WmiObject kasutamine versioonis 2.0) | Haldus: ei | Süsteeminõuded: pole proovige { $baseBoard = Get-CimInstance Win32_BaseBoard –ErrorAction Stop if ($null -eq $baseBoard -või [string]::IsNullOrEmpty($baseBoard.Manufacturer)) { Write-Warning "Baaslaua tootjat ei saanud tuua" $baseBoardManufacturer = "Tundmatu" } else { $baseBoardManufacturer = $baseBoard.Manufacturer } Write-Host "Alusplaadi tootja: $baseBoardManufacturer" } püüdmine { Write-Warning "Tõrge alusplaadi tootja toomisel: $_" $baseBoardManufacturer = "Tundmatu" Write-Host "Alusplaadi tootja: $baseBoardManufacturer" }
# 24. BaseBoardProduct # PS Versioon: 3.0+ (Get-WmiObject kasutamine versioonis 2.0) | Haldus: ei | Süsteeminõuded: pole proovige { $baseBoard = Get-CimInstance Win32_BaseBoard –ErrorAction Stop if ($null -eq $baseBoard -või [string]::IsNullOrEmpty($baseBoard.Product)) { Write-Warning "Baaslaua toodet ei saanud tuua" $baseBoardProduct = "Tundmatu" } else { $baseBoardProduct = $baseBoard.Product } Write-Host "Baaslaua toode: $baseBoardProduct" } püüdmine { Write-Warning "Alusplaadi toote toomisel ilmnes tõrge: $_" $baseBoardProduct = "Tundmatu" Write-Host "Baaslaua toode: $baseBoardProduct"}