Gjelder for
Windows 10 Windows 10, version 1607, all editions Win 10 Ent 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

Opprinnelig publiseringsdato: 17. november 2025 kl.

KB-ID: 5072718

Eksempel på skript for datainnsamling for sikker oppstart av lager

Kopier og lim inn dette eksempelskriptet og endre etter behov for miljøet: Skriptet Eksempel på sikker oppstart av datainnsamling for lager.

Sample_Secure_Boot_Inventory_Data_Collection_script

# 1. HostName # PS-versjon: Alle | Admin: Nei | Systemkrav: Ingen prøv {     $hostname = $env:COMPUTERNAME     hvis ([streng]::IsNullOrEmpty($hostname)) {         Write-Warning «Kan ikke fastslå vertsnavn»         $hostname = "Ukjent"     }     Write-Host «Vertsnavn: $hostname» } catch {     Write-Warning «Feil under henting av vertsnavn: $_»     $hostname = "Feil"     Write-Host «Vertsnavn: $hostname» }

# 2. CollectionTime # PS-versjon: Alle | Admin: Nei | Systemkrav: Ingen prøv {     $collectionTime = Hent-dato     hvis ($null -eq $collectionTime) {         Write-Warning «Kan ikke hente gjeldende dato/klokkeslett»         $collectionTime = "Ukjent"     }     Write-Host «Samlingstidspunkt: $collectionTime» } catch {     Write-Warning «Feil under henting av dato/klokkeslett: $_»     $collectionTime = "Feil"     Write-Host «Samlingstidspunkt: $collectionTime» }

# Registry: Secure Boot Main Key (3 values)

# 3. SecureBootEnabled # PS-versjon: 3.0+ | Admin: Kan være nødvendig | Systemkrav: UEFI/sikker oppstart-kompatibelt system prøv {     $secureBootEnabled = Confirm-SecureBootUEFI -ErrorAction Stop     Write-Host «Sikker oppstart aktivert: $secureBootEnabled» } catch {     Write-Warning «Kan ikke bestemme status for sikker oppstart via cmdlet: $_»     # Prøv tilbakefall av registret     prøv {         $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\State" -Name UEFISecureBootEnabled -ErrorAction Stop         $secureBootEnabled = [bool]$regValue.UEFISecureBootEnabled         Write-Host «Sikker oppstart aktivert: $secureBootEnabled»     } catch {         Write-Warning «Kan ikke bestemme status for sikker oppstart via registret. Systemet støtter kanskje ikke UEFI/Sikker oppstart.»         $secureBootEnabled = $null         Write-Host «Sikker oppstart aktivert: Ikke tilgjengelig»     } }

# 4. HighConfidenceOptOut # PS-versjon: Alle | Admin: Kan være nødvendig | Systemkrav: Ingen prøv {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot" -Name HighConfidenceOptOut -ErrorAction Stop     $highConfidenceOptOut = $regValue.HighConfidenceOptOut     Write-Host «Valg av høy visshet: $highConfidenceOptOut» } catch {     Write-Warning HighConfidenceOptOut-registernøkkelen ble ikke funnet eller utilgjengelig     $highConfidenceOptOut = $null     Write-Host «Høy visshet melder seg ut: Ikke tilgjengelig» }

# 5. AvailableUpdates # PS-versjon: Alle | Admin: Kan være nødvendig | Systemkrav: Ingen prøv {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot" -Name AvailableUpdates -ErrorAction Stop     $availableUpdates = $regValue.AvailableUpdates     hvis ($null -ne $availableUpdates) {         # Konverter til heksadesimalt format         $availableUpdatesHex = "0x{0:X}" -f $availableUpdates         Write-Host «Tilgjengelig Oppdateringer: $availableUpdatesHex»     } ellers {         Write-Host «Tilgjengelig Oppdateringer: Ikke tilgjengelig»     } } catch {     Write-Warning "Finner ikke eller ikke tilgjengelig AvailableUpdates-registernøkkel"     $availableUpdates = $null     Write-Host «Tilgjengelig Oppdateringer: Ikke tilgjengelig» }

# Registry: Servicing Key (3 values)

# 6. UEFICA2023Status # PS-versjon: Alle | Admin: Kan være nødvendig | Systemkrav: Ingen prøv {     $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» } catch {     Write-Warning "UEFICA2023Status registernøkkel ikke funnet eller utilgjengelig"     $uefica 2023Status = $null     Write-Host «UEFI CA 2023 Status: Ikke tilgjengelig» }

# 7. UEFICA2023Capable # PS-versjon: Alle | Admin: Kan være nødvendig | Systemkrav: Ingen prøv {     $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" } catch {     Write-Warning "UEFICA2023Capable registry key not found or inaccessible"     $uefica 2023Capable = $null     Write-Host «UEFI CA 2023 Capable: Not Available» }

# 8. UEFICA2023Error # PS-versjon: Alle | Admin: Kan være nødvendig | Systemkrav: Ingen prøv {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\Servicing" -Name UEFICA2023Error -ErrorAction Stop     $uefica 2023Error = $regValue.UEFICA2023Error     Write-Host «UEFI CA 2023-feil: $uefica 2023Error» } catch {     Write-Warning "UEFICA2023Feil registernøkkel ikke funnet eller utilgjengelig"     $uefica 2023Feil = $null     Write-Host «UEFI CA 2023-feil: Ikke tilgjengelig» }

# Registry: Device Attributes (7 values)

# 9. OEMManufacturerName # PS-versjon: Alle | Admin: Kan være nødvendig | Systemkrav: Ingen prøv {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OEMManufacturerName -ErrorAction Stop     $oemManufacturerName = $regValue.OEMManufacturerName     hvis ([streng]::IsNullOrEmpty($oemManufacturerName)) {         Write-Warning "OEMManufacturerName is empty"         $oemManufacturerName = "Ukjent"     }     Write-Host «OEM-produsentnavn: $oemManufacturerName» } catch {     Write-Warning finner ikke OEMManufacturerName-registernøkkelen eller ikke tilgjengelig     $oemManufacturerName = $null     Write-Host «OEM-produsentnavn: Ikke tilgjengelig» }

# 10. OEMModelSystemFamily # PS-versjon: Alle | Admin: Kan være nødvendig | Systemkrav: Ingen prøv {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OEMModelSystemFamily -ErrorAction Stop     $oemModelSystemFamily = $regValue.OEMModelSystemFamily     hvis ([streng]::IsNullOrEmpty($oemModelSystemFamily)) {         Write-Warning "OEMModelSystemFamily er tom"         $oemModelSystemFamily = "Ukjent"     }     Write-Host «Systemfamilie for OEM-modell: $oemModelSystemFamily» } catch {     Write-Warning finner ikke OEMModelSystemFamily-registernøkkelen eller ikke tilgjengelig     $oemModelSystemFamily = $null     Write-Host «Systemfamilie for OEM-modell: Ikke tilgjengelig» }

# 11. OEMModelNumber # PS-versjon: Alle | Admin: Kan være nødvendig | Systemkrav: Ingen prøv {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OEMModelNumber -ErrorAction Stop     $oemModelNumber = $regValue.OEMModelNumber     hvis ([streng]::IsNullOrEmpty($oemModelNumber)) {         Write-Warning "OEMModelNumber er tom"         $oemModelNumber = "Ukjent"     }     Write-Host «OEM-modellnummer: $oemModelNumber» } catch {     Write-Warning "Finner ikke OEMModelNumber-registernøkkel eller ikke tilgjengelig"     $oemModelNumber = $null     Write-Host «OEM-modellnummer: Ikke tilgjengelig» }

# 12. FirmwareVersion # PS-versjon: Alle | Admin: Kan være nødvendig | Systemkrav: Ingen prøv {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name FirmwareVersion -ErrorAction Stop     $firmwareVersion = $regValue.FirmwareVersion     hvis ([streng]::IsNullOrEmpty($firmwareVersion)) {         Write-Warning «FirmwareVersion er tom»         $firmwareVersion = "Ukjent"     }     Write-Host Fastvareversjon: $firmwareVersion } catch {     Write-Warning FastwareVersion-registernøkkelen ble ikke funnet eller utilgjengelig     $firmwareVersion = $null     Write-Host Fastvareversjon: Ikke tilgjengelig }

# 13. FirmwareReleaseDate # PS-versjon: Alle | Admin: Kan være nødvendig | Systemkrav: Ingen prøv {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name FirmwareReleaseDate -ErrorAction Stop     $firmwareReleaseDate = $regValue.FirmwareReleaseDate     hvis ([streng]::IsNullOrEmpty($firmwareReleaseDate)) {         Write-Warning «FirmwareReleaseDate er tom»         $firmwareReleaseDate = "Ukjent"     }     Write-Host "Utgivelsesdato for fastvare: $firmwareReleaseDate" } catch {     Write-Warning FastvareReleaseDate-registernøkkelen ble ikke funnet eller utilgjengelig     $firmwareReleaseDate = $null     Write-Host «Utgivelsesdato for fastvare: Ikke tilgjengelig» }

# 14. OSArchitecture # PS-versjon: Alle | Admin: Nei | Systemkrav: Ingen prøv {     $osArchitecture = $env:PROCESSOR_ARCHITECTURE     hvis ([streng]::IsNullOrEmpty($osArchitecture)) {         # Prøv tilbakefall av registret         $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OSArchitecture -ErrorAction Stop         $osArchitecture = $regValue.OSArchitecture     }     hvis ([streng]::IsNullOrEmpty($osArchitecture)) {         Write-Warning "OSArchitecture kunne ikke fastslås"         $osArchitecture = "Ukjent"     }     Write-Host «OS-arkitektur: $osArchitecture» } catch {     Write-Warning «Feil under henting av OSArchitecture: $_»     $osArchitecture = "Ukjent"     Write-Host «OS-arkitektur: $osArchitecture» }

# 15. CanAttemptUpdateAfter (FILETIME) # PS-versjon: Alle | Admin: Kan være nødvendig | Systemkrav: Ingen prøv {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name CanAttemptUpdateAfter -ErrorAction Stop     $canAttemptUpdateAfter = $regValue.CanAttemptUpdateAfter     # Konverter FILETIME til DateTime hvis det er et gyldig tall     hvis ($null -ne $canAttemptUpdateAfter -and $canAttemptUpdateAfter -is [long]) {         prøv {             $canAttemptUpdateAfter = [DateTime]::FromFileTime($canAttemptUpdateAfter)         } catch {             Write-Warning «Kan ikke konvertere CanAttemptUpdateAfter FILETIME til DateTime»         }     }     Write-Host «Kan prøve oppdatering etter: $canAttemptUpdateAfter» } catch {     Write-Warning "CanAttemptUpdateAfter registry key not found or inaccessible"     $canAttemptUpdateAfter = $null     Write-Host «Kan prøve oppdatering etter: Ikke tilgjengelig» }

# Event Logs: System Log (5 values)

# 16-20. Event Log queries # PS-versjon: 3.0+ | Admin: Kan være nødvendig for systemlogg | Systemkrav: Ingen prøv {     $allEventIds = @(1801, 1808)     $events = @(Get-WinEvent -FilterHashtable @{LogName='System'; ID=$allEventIds} -MaxEvents 20 -ErrorAction Stop)

    if ($events.Count -eq 0) {         Write-Warning «Ingen sikre oppstartshendelser (1801/1808) funnet i systemloggen»         $latestEventId = $null         $bucketId = $null         $confidence = $null         $event 1801Count = 0         $event 1808Count = 0         Write-Host «Siste hendelses-ID: Ikke tilgjengelig»         Write-Host «Samlings-ID: Ikke tilgjengelig»         Write-Host «Konfidens: Ikke tilgjengelig»         Write-Host «Antall hendelser 1801: 0»         Write-Host «Antall hendelser 1808: 0»     } ellers {         # 16. LatestEventId         $latestEvent = $events | Sort-Object TimeCreated -Descending | Select-Object -Første 1         hvis ($null -eq $latestEvent) {             Write-Warning «Kan ikke fastslå siste hendelse»             $latestEventId = $null             Write-Host «Siste hendelses-ID: Ikke tilgjengelig»         } ellers {             $latestEventId = $latestEvent.Id             Write-Host «Siste hendelses-ID: $latestEventId»         }

        # 17. BucketID - Extracted from Event 1801/1808 hvis ($null -ne $latestEvent -and $null -ne $latestEvent.Message) {             hvis ($latestEvent.Message -match 'BucketId:\s*(.+)') {                 $bucketId = $matches[1]. Trim()                 Write-Host «Samlings-ID: $bucketId»             } ellers {                 Write-Warning "Finner ikke BucketId i hendelsesmeldingen"                 $bucketId = $null                 Write-Host "Samlings-ID: Ikke funnet i hendelse"             }         } ellers {             Write-Warning «Siste hendelse eller melding er null, kan ikke trekke ut BucketId»             $bucketId = $null             Write-Host «Samlings-ID: Ikke tilgjengelig»         }

        # 18. Confidence - Extracted from Event 1801/1808 hvis ($null -ne $latestEvent -and $null -ne $latestEvent.Message) {             hvis ($latestEvent.Message -match 'BucketConfidenceLevel:\s*(.+)') {                 $confidence = $matches[1]. Trim()                 Write-Host «Konfidens: $confidence»             } ellers {                 Write-Warning «Finner ikke konfidensnivå i hendelsesmeldingen»                 $confidence = $null                 Write-Host «Konfidens: Ikke funnet i tilfelle»             }         } ellers {             Write-Warning «Siste hendelse eller melding er null, kan ikke trekke ut konfidens»             $confidence = $null             Write-Host «Konfidens: Ikke tilgjengelig»         }

        # 19. Event1801Count $event 1801Array = @($events | Where-Object {$_. ID -eq 1801})         $event 1801Count = $event 1801Array.Count         Write-Host «Antall hendelser 1801: $event 1801Count»

        # 20. Event1808Count $event 1808Array = @($events | Where-Object {$_. ID -eq 1808})         $event 1808Count = $event 1808Array.Count         Write-Host «Antall hendelser 1808: $event 1808Count»     } } catch {     Write-Warning «Feil under henting av hendelseslogger. Kan kreve administratorrettigheter: $_"     $latestEventId = $null     $bucketId = $null     $confidence = $null     $event 1801Count = 0     $event 1808Count = 0     Write-Host «Siste hendelses-ID: Feil»     Write-Host «Samlings-ID: Feil»     Write-Host «Konfidens: Feil»     Write-Host «Antall hendelser 1801: 0»     Write-Host «Antall hendelser 1808: 0» }

# WMI/CIM Queries (4 values)

# 21. OSVersion # PS-versjon: 3.0+ (bruk Get-WmiObject for 2.0) | Admin: Nei | Systemkrav: Ingen prøv {     $osInfo = Get-CimInstance Win32_OperatingSystem -ErrorAction-stopp     hvis ($null -eq $osInfo -or [string]::IsNullOrEmpty($osInfo.Version)) {         Write-Warning «Kan ikke hente OS-versjon»         $osVersion = "Ukjent"     } ellers {         $osVersion = $osInfo.Version     }     Write-Host «OS-versjon: $osVersion» } catch {     Write-Warning «Feil under henting av OS-versjon: $_»     $osVersion = "Ukjent"     Write-Host «OS-versjon: $osVersion» }

# 22. LastBootTime # PS-versjon: 3.0+ (bruk Get-WmiObject for 2.0) | Admin: Nei | Systemkrav: Ingen prøv {     $osInfo = Get-CimInstance Win32_OperatingSystem -ErrorAction-stopp     hvis ($null -eq $osInfo -eller $null -eq $osInfo.LastBootUpTime) {         Write-Warning «Kan ikke hente siste oppstartstidspunkt»         $lastBootTime = $null         Write-Host «Siste oppstartstid: Ikke tilgjengelig»     } ellers {         $lastBootTime = $osInfo.LastBootUpTime         Write-Host «Siste oppstartstid: $lastBootTime»     } } catch {     Write-Warning «Feil under henting av siste oppstartstid: $_»     $lastBootTime = $null     Write-Host «Siste oppstartstid: Ikke tilgjengelig» }

# 23. BaseBoardManufacturer # PS-versjon: 3.0+ (bruk Get-WmiObject for 2.0) | Admin: Nei | Systemkrav: Ingen prøv {     $baseBoard = Get-CimInstance Win32_BaseBoard -ErrorAction Stop     if ($null -eq $baseBoard -or [string]::IsNullOrEmpty($baseBoard.Manufacturer)) {         Write-Warning «Kan ikke hente baseboard-produsent»         $baseBoardManufacturer = "Ukjent"     } ellers {         $baseBoardManufacturer = $baseBoard.Manufacturer     }     Write-Host «Baseboard Manufacturer: $baseBoardManufacturer» } catch {     Write-Warning «Feil under henting av baseboard-produsent: $_»     $baseBoardManufacturer = "Ukjent"     Write-Host «Baseboard Manufacturer: $baseBoardManufacturer» }

# 24. BaseBoardProduct # PS-versjon: 3.0+ (bruk Get-WmiObject for 2.0) | Admin: Nei | Systemkrav: Ingen prøv {     $baseBoard = Get-CimInstance Win32_BaseBoard -ErrorAction Stop     if ($null -eq $baseBoard -or [string]::IsNullOrEmpty($baseBoard.Product)) {         Write-Warning «Kan ikke hente baseboard-produkt»         $baseBoardProduct = "Ukjent"     } ellers {         $baseBoardProduct = $baseBoard.Product     }     Write-Host «Baseboard Product: $baseBoardProduct» } catch {     Write-Warning «Feil under henting av baseboard-produkt: $_»     $baseBoardProduct = "Ukjent"     Write-Host «Baseboard Product: $baseBoardProduct»}

Trenger du mer hjelp?

Vil du ha flere alternativer?

Utforsk abonnementsfordeler, bla gjennom opplæringskurs, finn ut hvordan du sikrer enheten og mer.