Gäller för
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

Ursprungligt publiceringsdatum: den 17 november 2025

KB-ID: 5072718

Exempel på skript för insamling av lagerdata för säker start

Kopiera och klistra in det här exempelskriptet och ändra efter behov för din miljö: Exempelskriptet för insamling av lagerdata för säker start.

Sample_Secure_Boot_Inventory_Data_Collection_script

# 1. HostName # PS-version: Alla | Admin: Nej | Systemkrav: Inga prova {     $hostname = $env:COMPUTERNAME     if ([string]::IsNullOrEmpty($hostname)) {         Write-Warning "Det gick inte att fastställa värdnamnet"         $hostname = "Okänd"     }     Write-Host "Hostname: $hostname" } fångst {     Write-Warning "Fel vid hämtning av värdnamn: $_"     $hostname = "Fel"     Write-Host "Hostname: $hostname" }

# 2. CollectionTime # PS-version: Alla | Admin: Nej | Systemkrav: Inga prova {     $collectionTime = Get-Date     if ($null -eq $collectionTime) {         Write-Warning "Det gick inte att hämta dagens datum/tid"         $collectionTime = "Okänd"     }     Write-Host "Insamlingstid: $collectionTime" } fångst {     Write-Warning "Fel vid hämtning av datum/tid: $_"     $collectionTime = "Fel"     Write-Host "Insamlingstid: $collectionTime" }

# Registry: Secure Boot Main Key (3 values)

# 3. SecureBootEnabled # PS-version: 3.0+ | Admin: Kan krävas | Systemkrav: UEFI/Secure Boot capable system prova {     $secureBootEnabled = Confirm-SecureBootUEFI -ErrorAction Stop     Write-Host "Säker start aktiverad: $secureBootEnabled" } fångst {     Write-Warning "Det går inte att fastställa status för säker start via cmdlet: $_"     # Prova registeråterkoppling     prova {         $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\State" -Name UEFISecureBootEnabled -ErrorAction Stop         $secureBootEnabled = [bool]$regValue.UEFISecureBootEnabled         Write-Host "Säker start aktiverad: $secureBootEnabled"     } fångst {         Write-Warning "Det går inte att fastställa status för säker start via registret. Systemet kanske inte stöder UEFI/Säker start."         $secureBootEnabled = $null         Write-Host "Säker start aktiverad: Inte tillgänglig"     } }

# 4. HighConfidenceOptOut # PS-version: Alla | Admin: Kan krävas | Systemkrav: Inga prova {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot" -Name HighConfidenceOptOut -ErrorAction Stop     $highConfidenceOptOut = $regValue.HighConfidenceOptOut     Write-Host "Avregistrera dig från högt förtroende: $highConfidenceOptOut" } fångst {     Write-Warning "Registernyckeln HighConfidenceOptOut hittades inte eller är inte tillgänglig"     $highConfidenceOptOut = $null     Write-Host "Avregistrera dig från högt förtroende: Inte tillgängligt" }

# 5. AvailableUpdates # PS-version: Alla | Admin: Kan krävas | Systemkrav: Inga prova {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot" -Name AvailableUpdates -ErrorAction Stop     $availableUpdates = $regValue.AvailableUpdates     if ($null -ne $availableUpdates) {         # Konvertera till hexadecimalt format         $availableUpdatesHex = "0x{0:X}" -f $availableUpdates         Write-Host Tillgänglig Uppdateringar: $availableUpdatesHex     } annars {         Write-Host "Tillgänglig Uppdateringar: Inte tillgänglig"     } } fångst {     Write-Warning "AvailableUpdates registry key not found or inaccessible"     $availableUpdates = $null     Write-Host "Tillgänglig Uppdateringar: Inte tillgänglig" }

# Registry: Servicing Key (3 values)

# 6. UEFICA2023Status # PS-version: Alla | Admin: Kan krävas | Systemkrav: Inga prova {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\Servicing" -Name UEFICA2023Status -ErrorAction Stop     $uefica 2023Status = $regValue.UEFICA2023Status     Write-Host "UEFI CA 2023 Status: $uefica 2023Status" } fångst {     Write-Warning "UEFICA2023Status registernyckel hittades inte eller är inte tillgänglig"     $uefica 2023Status = $null     Write-Host "UEFI CA 2023 Status: Inte tillgänglig" }

# 7. UEFICA2023Capable # PS-version: Alla | Admin: Kan krävas | Systemkrav: Inga prova {     $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" } fångst {     Write-Warning "UEFICA2023Capable registry key not found or inaccessible"     $uefica 2023Capable = $null     Write-Host "UEFI CA 2023 Capable: Not Available" }

# 8. UEFICA2023Error # PS-version: Alla | Admin: Kan krävas | Systemkrav: Inga prova {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\Servicing" -Name UEFICA2023Error -ErrorAction Stop     $uefica 2023Fel = $regValue.UEFICA2023Fel     Write-Host "UEFI CA 2023 Fel: $uefica 2023Fel" } fångst {     Write-Warning "UEFICA2023Fel registernyckel hittades inte eller var inte tillgänglig"     $uefica 2023Fel = $null     Write-Host "UEFI CA 2023-fel: Inte tillgängligt" }

# Registry: Device Attributes (7 values)

# 9. OEMManufacturerName # PS-version: Alla | Admin: Kan krävas | Systemkrav: Inga prova {     $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 = "Okänd"     }     Write-Host "OEM-tillverkarens namn: $oemManufacturerName" } fångst {     Write-Warning "OEMManufacturerName-registernyckeln hittades inte eller var inte tillgänglig"     $oemManufacturerName = $null     Write-Host "OEM-tillverkarens namn: Inte tillgängligt" }

# 10. OEMModelSystemFamily # PS-version: Alla | Admin: Kan krävas | Systemkrav: Inga prova {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OEMModelSystemFamily -ErrorAction Stop     $oemModelSystemFamily = $regValue.OEMModelSystemFamily     if ([string]::IsNullOrEmpty($oemModelSystemFamily)) {         Write-Warning "OEMModelSystemFamily är tomt"         $oemModelSystemFamily = "Okänd"     }     Write-Host "OEM Model System Family: $oemModelSystemFamily" } fångst {     Write-Warning registernyckeln OEMModelSystemFamily hittades inte eller var inte tillgänglig     $oemModelSystemFamily = $null     Write-Host "OEM Model System Family: Not Available" }

# 11. OEMModelNumber # PS-version: Alla | Admin: Kan krävas | Systemkrav: Inga prova {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OEMModelNumber -ErrorAction Stop     $oemModelNumber = $regValue.OEMModelNumber     if ([string]::IsNullOrEmpty($oemModelNumber)) {         Write-Warning "OEMModelNumber är tomt"         $oemModelNumber = "Okänd"     }     Write-Host "OEM-modellnummer: $oemModelNumber" } fångst {     Write-Warning "OEMModelNumber-registernyckeln hittades inte eller var inte tillgänglig"     $oemModelNumber = $null     Write-Host "OEM-modellnummer: Inte tillgängligt" }

# 12. FirmwareVersion # PS-version: Alla | Admin: Kan krävas | Systemkrav: Inga prova {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name FirmwareVersion -ErrorAction Stop     $firmwareVersion = $regValue.FirmwareVersion     if ([string]::IsNullOrEmpty($firmwareVersion)) {         Write-Warning "FirmwareVersion är tom"         $firmwareVersion = "Okänd"     }     Write-Host "Version av inbyggd programvara: $firmwareVersion" } fångst {     Write-Warning "Registernyckeln FirmwareVersion hittades inte eller är inte tillgänglig"     $firmwareVersion = $null     Write-Host "Version av inbyggd programvara: Inte tillgänglig" }

# 13. FirmwareReleaseDate # PS-version: Alla | Admin: Kan krävas | Systemkrav: Inga prova {     $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"         $firmwareReleaseDate = "Okänd"     }     Write-Host "Utgivningsdatum för inbyggd programvara: $firmwareReleaseDate" } fångst {     Write-Warning "Registernyckeln FirmwareReleaseDate hittades inte eller var inte tillgänglig"     $firmwareReleaseDate = $null     Write-Host "Utgivningsdatum för inbyggd programvara: Inte tillgängligt" }

# 14. OSArchitecture # PS-version: Alla | Admin: Nej | Systemkrav: Inga prova {     $osArchitecture = $env:PROCESSOR_ARCHITECTURE     if ([string]::IsNullOrEmpty($osArchitecture)) {         # Prova registeråterkoppling         $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OSArchitecture -ErrorAction Stop         $osArchitecture = $regValue.OSArchitecture     }     if ([string]::IsNullOrEmpty($osArchitecture)) {         Write-Warning "OSArchitecture kunde inte fastställas"         $osArchitecture = "Okänd"     }     Write-Host "OS-arkitektur: $osArchitecture" } fångst {     Write-Warning "Fel vid hämtning av OSArchitecture: $_"     $osArchitecture = "Okänd"     Write-Host "OS-arkitektur: $osArchitecture" }

# 15. CanAttemptUpdateAfter (FILETIME) # PS-version: Alla | Admin: Kan krävas | Systemkrav: Inga prova {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name CanAttemptUpdateAfter -ErrorAction Stop     $canAttemptUpdateAfter = $regValue.CanAttemptUpdateAfter     # Konvertera FILETIME till DateTime om det är ett giltigt tal     if ($null -ne $canAttemptUpdateAfter -and $canAttemptUpdateAfter -is [long]) {         prova {             $canAttemptUpdateAfter = [DateTime]::FromFileTime($canAttemptUpdateAfter)         } fångst {             Write-Warning "Det gick inte att konvertera CanAttemptUpdateAfter FILETIME till DateTime"         }     }     Write-Host "Kan försöka uppdatera efter: $canAttemptUpdateAfter" } fångst {     Write-Warning "CanAttemptUpdateAfter registernyckel hittades inte eller är inte tillgänglig"     $canAttemptUpdateAfter = $null     Write-Host "Kan försöka uppdatera efter: Inte tillgängligt" }

# Event Logs: System Log (5 values)

# 16-20. Event Log queries # PS-version: 3.0+ | Admin: Kan krävas för systemlogg | Systemkrav: Inga prova {     $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"         $latestEventId = $null         $bucketId = $null         $confidence = $null         $event 1801Antal = 0         $event 1808Antal = 0         Write-Host "Senaste händelse-ID: Inte tillgängligt"         Write-Host "Bucket ID: Not Available"         Write-Host "Förtroende: Inte tillgängligt"         Write-Host "Event 1801 Count: 0"         Write-Host "Event 1808 Count: 0"     } annars {         # 16. LatestEventId         $latestEvent = $events | Sort-Object TimeCreated -Descending | Select-Object -Första 1         if ($null -eq $latestEvent) {             Write-Warning "Det gick inte att fastställa den senaste händelsen"             $latestEventId = $null             Write-Host "Senaste händelse-ID: Inte tillgängligt"         } annars {             $latestEventId = $latestEvent.Id             Write-Host "Senaste händelse-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]. Trimma()                 Write-Host "Bucket ID: $bucketId"             } annars {                 Write-Warning "BucketId hittades inte i händelsemeddelande"                 $bucketId = $null                 Write-Host "Bucket ID: Hittades inte i händelse"             }         } annars {             Write-Warning "Senaste händelsen eller meddelandet är null, kan inte extrahera BucketId"             $bucketId = $null             Write-Host "Bucket ID: Not Available"         }

        # 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]. Trimma()                 Write-Host "Förtroende: $confidence"             } annars {                 Write-Warning "Konfidensnivå hittades inte i händelsemeddelande"                 $confidence = $null                 Write-Host "Förtroende: Hittades inte i händelse"             }         } annars {             Write-Warning "Senaste händelsen eller meddelandet är null, kan inte extrahera konfidens"             $confidence = $null             Write-Host "Förtroende: Inte tillgängligt"         }

        # 19. Event1801Count $event 1801Array = @($events | Where-Object {$_. ID -eq 1801})         $event 1801Antal = $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"     } } fångst {     Write-Warning "Fel vid hämtning av händelseloggar. Kan kräva administratörsbehörighet: $_"     $latestEventId = $null     $bucketId = $null     $confidence = $null     $event 1801Antal = 0     $event 1808Antal = 0     Write-Host "Senaste händelse-ID: Fel"     Write-Host "Bucket ID: Error"     Write-Host "Förtroende: Fel"     Write-Host "Event 1801 Count: 0"     Write-Host "Event 1808 Count: 0" }

# WMI/CIM Queries (4 values)

# 21. OSVersion # PS-version: 3.0+ (använd Get-WmiObject för 2.0) | Admin: Nej | Systemkrav: Inga prova {     $osInfo = Get-CimInstance Win32_OperatingSystem -ErrorAction Stop     if ($null -eq $osInfo -or [string]::IsNullOrEmpty($osInfo.Version)) {         Write-Warning "Det gick inte att hämta OS-versionen"         $osVersion = "Okänd"     } annars {         $osVersion = $osInfo.Version     }     Write-Host "OS-version: $osVersion" } fångst {     Write-Warning "Fel vid hämtning av OS-version: $_"     $osVersion = "Okänd"     Write-Host "OS-version: $osVersion" }

# 22. LastBootTime # PS-version: 3.0+ (använd Get-WmiObject för 2.0) | Admin: Nej | Systemkrav: Inga prova {     $osInfo = Get-CimInstance Win32_OperatingSystem -ErrorAction Stop     if ($null -eq $osInfo -or $null -eq $osInfo.LastBootUpTime) {         Write-Warning "Det gick inte att hämta senaste starttiden"         $lastBootTime = $null         Write-Host "Senaste starttid: Inte tillgänglig"     } annars {         $lastBootTime = $osInfo.LastBootUpTime         Write-Host "Senaste starttid: $lastBootTime"     } } fångst {     Write-Warning "Fel vid hämtning av senaste starttid: $_"     $lastBootTime = $null     Write-Host "Senaste starttid: Inte tillgänglig" }

# 23. BaseBoardManufacturer # PS-version: 3.0+ (använd Get-WmiObject för 2.0) | Admin: Nej | Systemkrav: Inga prova {     $baseBoard = Get-CimInstance Win32_BaseBoard -ErrorAction Stop     if ($null -eq $baseBoard -or [string]::IsNullOrEmpty($baseBoard.Manufacturer)) {         Write-Warning "Det gick inte att hämta baseboardtillverkaren"         $baseBoardManufacturer = "Okänd"     } annars {         $baseBoardManufacturer = $baseBoard.Manufacturer     }     Write-Host "Baseboard Manufacturer: $baseBoardManufacturer" } fångst {     Write-Warning "Fel vid hämtning av baseboardtillverkare: $_"     $baseBoardManufacturer = "Okänd"     Write-Host "Baseboard Manufacturer: $baseBoardManufacturer" }

# 24. BaseBoardProduct # PS-version: 3.0+ (använd Get-WmiObject för 2.0) | Admin: Nej | Systemkrav: Inga prova {     $baseBoard = Get-CimInstance Win32_BaseBoard -ErrorAction Stop     if ($null -eq $baseBoard -or [string]::IsNullOrEmpty($baseBoard.Product)) {         Write-Warning "Det gick inte att hämta baseboard-produkt"         $baseBoardProduct = "Okänd"     } annars {         $baseBoardProduct = $baseBoard.Product     }     Write-Host "Baseboard-produkt: $baseBoardProduct" } fångst {     Write-Warning "Fel vid hämtning av baseboard-produkt: $_"     $baseBoardProduct = "Okänd"     Write-Host "Baseboard Product: $baseBoardProduct"}

Behöver du mer hjälp?

Vill du ha fler alternativ?

Utforska prenumerationsförmåner, bläddra bland utbildningskurser, lär dig hur du skyddar din enhet med mera.