Sākotnējās publicēšanas datums: 2025. gada 17. novembris
KB ID: 5072718
Drošas sāknēšanas krājumu datu kolekcijas skripta paraugs
Nokopējiet un ielīmējiet šo skripta paraugu un modificējiet pēc nepieciešamības savā vidē: drošās sāknēšanas krājumu datu kolekcijas skripts.
Sample_Secure_Boot_Inventory_Data_Collection_script
# 1. HostName # PS versija: Visi | Administrēšana: Nē | Sistēmas prasības: Nav izmēģināt { $hostname = $env:DATORA_NOSAUKUMS if ([string]::IsNullOrEmpty($hostname)) { Write-Warning "Resursdatora nosaukumu nevarēja noteikt" $hostname = "Nezināms" } Write-Host "Resursdatora nosaukums: $hostname" } tvert { Write-Warning "Kļūda, izgūstot resursdatora nosaukumu: $_" $hostname = "Kļūda" Write-Host "Resursdatora nosaukums: $hostname" }
# 2. CollectionTime # PS versija: Visi | Administrēšana: Nē | Sistēmas prasības: Nav izmēģināt { $collectionTime = Get-Date if ($null -eq $collectionTime) { Write-Warning "Nevarēja izgūt pašreizējo datumu/laiku" $collectionTime = "Nezināms" } Write-Host "Kolekcijas laiks: $collectionTime" } tvert { Write-Warning "Kļūda, izgūstot datumu/laiku: $_" $collectionTime = "Kļūda" Write-Host "Kolekcijas laiks: $collectionTime" }
# Registry: Secure Boot Main Key (3 values)
# 3. SecureBootEnabled # PS versija: 3.0+ | Administrēšana: var būt jānorāda obligāti | Sistēmas prasības: sistēma ar UEFI/drošo sāknēšanas sistēmu izmēģināt { $secureBootEnabled = Confirm-SecureBootUEFI -ErrorAction Stop Write-Host "Droša palaišana iespējota: $secureBootEnabled" } tvert { Write-Warning "Nevar noteikt drošās sāknēšanas statusu, izmantojot cmdlet: $_" # Try registry fallback izmēģināt { $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\State" -Name UEFISecureBootEnabled -ErrorAction Stop $secureBootEnabled = [būla vērtība]$regValue.UEFISecureBootEnabled Write-Host "Droša sāknēšana: iespējota: $secureBootEnabled" } tvert { Write-Warning "Nevar noteikt drošās sāknēšanas statusu, izmantojot reģistru. Sistēma, iespējams, neatbalsta UEFI/Secure Boot." $secureBootEnabled = $null Write-Host "Droša sāknēšana iespējota: nav pieejama" } }
# 4. HighConfidenceOptOut # PS versija: Visi | Administrēšana: var būt jānorāda obligāti | Sistēmas prasības: Nav izmēģināt { $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot" -Name HighConfidenceOptOut -ErrorAction Stop $highConfidenceOptOut = $regValue.HighConfidenceOptOut Write-Host "Augstas ticamības atteikšanās: $highConfidenceOptOut" } tvert { Write-Warning "HighConfidenceOptOut reģistra atslēga nav atrasta vai nav pieejama" $highConfidenceOptOut = $null Write-Host "Augstas ticamības atteikšanās: nav pieejams" }
# 5. AvailableUpdates # PS versija: Visi | Administrēšana: var būt jānorāda obligāti | Sistēmas prasības: Nav izmēģināt { $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot" -Name AvailableUpdates -ErrorAction Stop $availableUpdates = $regValue.AvailableUpdates if ($null -ne $availableUpdates) { # Pārvēršana heksadecimālā formātā $availableUpdatesHex = "0x{0:X}" -f $availableUpdates Write-Host "Pieejamās Atjauninājumi: $availableUpdatesHex" } vēl { Write-Host "Pieejamie Atjauninājumi: nav pieejams" } } tvert { Write-Warning "AvailableUpdates registry key not found or inaccessible" $availableUpdates = $null Write-Host "Pieejamie Atjauninājumi: nav pieejams" }
# Registry: Servicing Key (3 values)
# 6. UEFICA2023Status # PS versija: Visi | Administrēšana: var būt jānorāda obligāti | Sistēmas prasības: Nav izmēģināt { $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\Servicing" -Name UEFICA2023Status -ErrorAction Stop $uefica 2023Status = $regValue.UEFICA2023Status Write-Host "UEFI CA 2023 statuss: $uefica 2023Status" } tvert { Write-Warning "UEFICA2023Status reģistra atslēga nav atrasta vai nav pieejama" $uefica 2023Status = $null Write-Host "UEFI CA 2023 statuss: nav pieejams" }
# 7. UEFICA2023Capable # PS versija: Visi | Administrēšana: var būt jānorāda obligāti | Sistēmas prasības: Nav izmēģināt { $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" } tvert { Write-Warning "UEFICA2023Capable reģistra atslēga nav atrasta vai nepieejama" $uefica 2023Capable = $null Write-Host "UEFI CA 2023 Capable: Not Available" }
# 8. UEFICA2023Error # PS versija: Visi | Administrēšana: var būt jānorāda obligāti | Sistēmas prasības: Nav izmēģināt { $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\Servicing" -Name UEFICA2023Error -ErrorAction Stop $uefica 2023Error = $regValue.UEFICA2023Error Write-Host "UEFI CA 2023 kļūda: $uefica 2023Error" } tvert { Write-Warning "UEFICA2023Error reģistra atslēga nav atrasta vai nav pieejama" $uefica 2023Error = $null Write-Host "UEFI CA 2023 kļūda: nav pieejams" }
# Registry: Device Attributes (7 values)
# 9. OEMManufacturerName # PS versija: Visi | Administrēšana: var būt jānorāda obligāti | Sistēmas prasības: Nav izmēģināt { $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OEMManufacturerName -ErrorAction Stop $oemManufacturerName = $regValue.OEMManufacturName if ([string]::IsNullOrEmpty($oemManufacturerName)) { Write-Warning "OEMManufacturerName is empty" (OEMManufacturerName ir tukšs) $oemManufacturerName = "Unknown" } Write-Host "OEM ražotāja nosaukums: $oemManufacturerName" } tvert { Write-Warning "OEMManufacturerName reģistra atslēga nav atrasta vai nav pieejama" $oemManufacturerName = $null Write-Host "OEM ražotāja nosaukums: nav pieejams" }
# 10. OEMModelSystemFamily # PS versija: Visi | Administrēšana: var būt jānorāda obligāti | Sistēmas prasības: Nav izmēģināt { $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OEMModelSystemFamily -ErrorAction Stop $oemModelSystemFamily = $regValue.OEMModelSystemFamily if ([string]::IsNullOrEmpty($oemModelSystemFamily)) { Write-Warning "OEMModelSystemFamily is empty" (OEMModelSystemFamily ir tukšs) $oemModelSystemFamily = "Nezināms" } Write-Host "OEM Model System Family: $oemModelSystemFamily" } tvert { Write-Warning "OEMModelSystemFamily reģistra atslēga nav atrasta vai nav pieejama" $oemModelSystemFamily = $null Write-Host "OEM model system family: Not Available" (OEM modeļu sistēmas saime: nav pieejams) }
# 11. OEMModelNumber # PS versija: Visi | Administrēšana: var būt jānorāda obligāti | Sistēmas prasības: Nav izmēģināt { $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OEMModelNumber -ErrorAction Stop $oemModelNumber = $regValue.OEMModelNumber if ([string]::IsNullOrEmpty($oemModelNumber)) { Write-Warning "OEMModelNumber is empty" (OEMModelNumber ir tukšs) $oemModelNumber = "Nezināms" } Write-Host "OEM modeļa numurs: $oemModelNumber" } tvert { Write-Warning "OEMModelNumber reģistra atslēga nav atrasta vai nav pieejama" $oemModelNumber = $null Write-Host "OEM modeļa numurs: nav pieejams" }
# 12. FirmwareVersion # PS versija: Visi | Administrēšana: var būt jānorāda obligāti | Sistēmas prasības: Nav izmēģināt { $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name FirmwareVersion -ErrorAction Stop $firmwareVersion = $regValue.AparātprogrammatūraVersija if ([string]::IsNullOrEmpty($firmwareVersion)) { Write-Warning "AparātprogrammatūraVersija ir tukša" $firmwareVersion = "Nezināms" } Write-Host "Aparātprogrammatūras versija: $firmwareVersion" } tvert { Write-Warning "Aparātprogrammatūras_versijas reģistra atslēga nav atrasta vai nav pieejama" $firmwareVersion = $null Write-Host "Aparātprogrammatūras versija: nav pieejama" }
# 13. FirmwareReleaseDate # PS versija: Visi | Administrēšana: var būt jānorāda obligāti | Sistēmas prasības: Nav izmēģināt { $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name FirmwareReleaseDate -ErrorAction Stop $firmwareReleaseDate = $regValue.FirmwareReleaseDate if ([string]::IsNullOrEmpty($firmwareReleaseDate)) { Write-Warning "FirmwareReleaseDate is empty" (AparātprogrammatūrasreleaseDate ir tukšs) $firmwareReleaseDate = "Nezināms" } Write-Host "Aparātprogrammatūras izlaides datums: $firmwareReleaseDate" } tvert { Write-Warning "FirmwareReleaseDate reģistra atslēga nav atrasta vai nav pieejama" $firmwareReleaseDate = $null Write-Host "Aparātprogrammatūras izlaides datums: nav pieejams" }
# 14. OSArchitecture # PS versija: Visi | Administrēšana: Nē | Sistēmas prasības: Nav izmēģināt { $osArchitecture = $env:PROCESSOR_ARCHITECTURE if ([string]::IsNullOrEmpty($osArchitecture)) { # Try registry fallback $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OSArchitecture -ErrorAction Stop $osArchitecture = $regValue.OSArchitecture } if ([string]::IsNullOrEmpty($osArchitecture)) { Write-Warning "OSArchitecture nevarēja noteikt" $osArchitecture = "Nezināms" } Write-Host "OS arhitektūra: $osArchitecture" } tvert { Write-Warning kļūda, izgūstot OSArchitecture: $_" $osArchitecture = "Nezināms" Write-Host "OS arhitektūra: $osArchitecture" }
# 15. CanAttemptUpdateAfter (FILETIME) # PS versija: Visi | Administrēšana: var būt jānorāda obligāti | Sistēmas prasības: Nav izmēģināt { $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name CanAttemptUpdateAfter -ErrorAction Stop $canAttemptUpdateAfter = $regValue.CanAttemptUpdateAfter # Convert FILETIME to DateTime if it's valid number if ($null -ne $canAttemptUpdateAfter -and $canAttemptUpdateAfter -is [long]) { izmēģināt { $canAttemptUpdateAfter = [DateTime]:FromFileTime($canAttemptUpdateAfter) } tvert { Write-Warning "CanAttemptUpdateAfter FILETIME to DateTime" } } Write-Host "Var mēģināt atjaunināt pēc: $canAttemptUpdateAfter" } tvert { Write-Warning "CanAttemptUpdateAfter reģistra atslēga nav atrasta vai nav pieejama" $canAttemptUpdateAfter = $null Write-Host "Vai mēģināt atjaunināt pēc: nav pieejams" }
# Event Logs: System Log (5 values)
# 16-20. Event Log queries # PS versija: 3.0+ | Administrēšana: Sistēmas žurnālam var būt nepieciešams obligāti obligāti | Sistēmas prasības: Nav izmēģināt { $allEventIds = @(1801; 1808) $events = @(Get-WinEvent -FilterHashtable @{LogName='System'; ID=$allEventIds} -MaxEvents 20 -ErrorAction Stop)
if ($events.Count -eq 0) { Write-Warning "No Secure Boot events (1801/1808) found in System log" (Nav atrasti drošas sāknēšanas notikumi (1801/1808) $latestEventId = $null $bucketId = $null $confidence = $null $event 1801Count = 0 $event 1808Count = 0 Write-Host "Jaunākā notikuma ID: nav pieejams" Write-Host "Intervāla ID: nav pieejams" Write-Host "ticamības: nav pieejams" Write-Host "Pasākuma 1801 skaits: 0" Write-Host "Pasākuma 1808 skaits: 0" } vēl { # 16. LatestEventId $latestEvent = $events | Sort-Object TimeCreated -Descending | Select-Object -pirmais 1 if ($null -eq $latestEvent) { Write-Warning "Nevarēja noteikt jaunāko notikumu" $latestEventId = $null Write-Host "Jaunākais notikuma ID: nav pieejams" } vēl { $latestEventId = $latestEvent.Id Write-Host "Jaunākā notikuma 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]. Trim() Write-Host "Intervāla ID: $bucketId" } vēl { Write-Warning ziņojums "BucketId nav atrasts notikuma ziņojumā" $bucketId = $null Write-Host "Intervāla ID: nav atrasts notikumā" } } vēl { Write-Warning "Jaunākais notikums vai ziņojums ir null, nevar izvilkt BucketId" $bucketId = $null Write-Host "Intervāla ID: nav pieejams" }
# 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]. Trim() Write-Host "Uzticamība: $confidence" } vēl { Write-Warning "Ticamības līmenis nav atrasts notikuma ziņojumā" $confidence = $null Write-Host "ticamības: nav atrasts notikumā" } } vēl { Write-Warning "Jaunākais notikums vai ziņojums ir null, nevar izvilkt pārliecību" $confidence = $null Write-Host "ticamības: nav pieejams" }
# 19. Event1801Count $event 1801Array = @($events | Where-Object {$_. Id -eq 1801}) $event 1801Count = $event 1801Array.Count Write-Host "Notikuma 1801 count: $event 1801Count"
# 20. Event1808Count $event 1808Array = @($events | Where-Object {$_. Id -eq 1808}) $event 1808Count = $event 1808Array.Count Write-Host "Notikuma 1808 count: $event 1808Count" } } tvert { Write-Warning "Kļūda, izgūstot notikumu žurnālus. Var būt nepieciešamas administratora privilēģijas: $_" $latestEventId = $null $bucketId = $null $confidence = $null $event 1801Count = 0 $event 1808Count = 0 Write-Host "Jaunākais notikuma ID: kļūda" Write-Host "Intervāla ID: kļūda" Write-Host "ticamības ziņojums: kļūda" Write-Host "Pasākuma 1801 skaits: 0" Write-Host "Pasākuma 1808 skaits: 0" }
# WMI/CIM Queries (4 values)
# 21. OSVersion # PS versija: 3.0+ (Get-WmiObject 2.0 lietošanai) | Administrēšana: Nē | Sistēmas prasības: Nav izmēģināt { $osInfo = Get-CimInstance Win32_OperatingSystem -ErrorAction Stop if ($null -eq $osInfo -or [string]:IsNullOrEmpty($osInfo.Version)) { Write-Warning "Nevarēja izgūt OS versiju" $osVersion = "Nezināms" } vēl { $osVersion = $osInfo.Version } Write-Host "Operētājsistēmas versija: $osVersion" } tvert { Write-Warning kļūda, izgūstot operētājsistēmas versiju: $_" $osVersion = "Nezināms" Write-Host "Operētājsistēmas versija: $osVersion" }
# 22. LastBootTime # PS versija: 3.0+ (Get-WmiObject 2.0 lietošanai) | Administrēšana: Nē | Sistēmas prasības: Nav izmēģināt { $osInfo = Get-CimInstance Win32_OperatingSystem -ErrorAction Stop if ($null -eq $osInfo -or $null -eq $osInfo.LastBootUpTime) { Write-Warning "Neizdevās izgūt pēdējās palaišanas laiku" $lastBootTime = $null Write-Host "Pēdējās sāknēšanas laiks: nav pieejams" } vēl { $lastBootTime = $osInfo.LastBootUpTime Write-Host "Last Boot Time: $lastBootTime" } } tvert { Write-Warning "Kļūda, izgūstot pēdējās palaišanas laiku: $_" $lastBootTime = $null Write-Host "Last Boot Time: Not Available" }
# 23. BaseBoardManufacturer # PS versija: 3.0+ (Get-WmiObject 2.0 lietošanai) | Administrēšana: Nē | Sistēmas prasības: Nav izmēģināt { $baseBoard = Get-CimInstance Win32_BaseBoard -ErrorAction Stop if ($null -eq $baseBoard -or [string]:IsNullOrEmpty($baseBoard.Manufacturer)) { Write-Warning "Could not retrieve baseboard manufacturer" $baseBoardManufacturer = "Nezināms" } vēl { $baseBoardManufacturer = $baseBoard.Ražotājs } Write-Host "Baseboard Manufacturer: $baseBoardManufacturer" } tvert { Write-Warning "Kļūda, izgūstot bāzes tāfeles ražotāju: $_" $baseBoardManufacturer = "Nezināms" Write-Host "Baseboard Manufacturer: $baseBoardManufacturer" }
# 24. BaseBoardProduct # PS versija: 3.0+ (Get-WmiObject 2.0 lietošanai) | Administrēšana: Nē | Sistēmas prasības: Nav izmēģināt { $baseBoard = Get-CimInstance Win32_BaseBoard -ErrorAction Stop if ($null -eq $baseBoard -or [string]:IsNullOrEmpty($baseBoard.Product)) { Write-Warning "Nevarēja izgūt bāzes tāfeles produktu" $baseBoardProduct = "Nezināms" } vēl { $baseBoardProduct = $baseBoard.Product } Write-Host "Bāzes tāfeles produkts: $baseBoardProduct" } tvert { Write-Warning kļūda, izgūstot bāzes tāfeles produktu: $_" $baseBoardProduct = "Nezināms" Write-Host "Bāzes tāfeles produkts: $baseBoardProduct"}