Oorspronkelijke publicatiedatum: dinsdag 17 november 2025
KB-id: 5072718
Voorbeeld van een script voor het verzamelen van inventarisgegevens voor veilig opstarten
Kopieer en plak dit voorbeeldscript en wijzig deze indien nodig voor uw omgeving: het voorbeeldscript Voor het verzamelen van inventarisgegevens voor beveiligd opstarten.
Sample_Secure_Boot_Inventory_Data_Collection_script
# 1. HostName # PS-versie: Alle | Beheer: Nee | Systeemvereisten: Geen probeer { $hostname = $env:COMPUTERNAAM if ([string]::IsNullOrEmpty($hostname)) { Write-Warning 'Hostnaam kan niet worden bepaald' $hostname = "Onbekend" } Write-Host Hostnaam: $hostname } catch { Write-Warning 'Fout bij het ophalen van hostnaam: $_' $hostname = "Fout" Write-Host Hostnaam: $hostname }
# 2. CollectionTime # PS-versie: Alle | Beheer: Nee | Systeemvereisten: Geen probeer { $collectionTime = Get-Date if ($null -eq $collectionTime) { Write-Warning 'Kan huidige datum/tijd niet ophalen' $collectionTime = "Onbekend" } Write-Host 'Verzameltijd: $collectionTime' } catch { Write-Warning 'Fout bij het ophalen van datum/tijd: $_' $collectionTime = "Fout" Write-Host 'Verzameltijd: $collectionTime' }
# Registry: Secure Boot Main Key (3 values)
# 3. SecureBootEnabled # PS-versie: 3.0+ | Beheer: mogelijk vereist | Systeemvereisten: systeem dat geschikt is voor UEFI/Beveiligd opstarten probeer { $secureBootEnabled = Confirm-SecureBootUEFI -ErrorAction Stop Write-Host Beveiligd opstarten ingeschakeld: $secureBootEnabled } catch { Write-Warning 'Kan de status van beveiligd opstarten niet bepalen via cmdlet: $_' # Probeer terugval in het register probeer { $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\State" -Name UEFISecureBootEnabled -ErrorAction Stop $secureBootEnabled = [bool]$regValue.UEFISecureBootEnabled Write-Host Beveiligd opstarten ingeschakeld: $secureBootEnabled } catch { Write-Warning 'Kan de status van beveiligd opstarten niet bepalen via het register. Het systeem biedt mogelijk geen ondersteuning voor UEFI/Beveiligd opstarten. $secureBootEnabled = $null Write-Host 'Beveiligd opstarten ingeschakeld: niet beschikbaar' } }
# 4. HighConfidenceOptOut # PS-versie: Alle | Beheer: mogelijk vereist | Systeemvereisten: Geen probeer { $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot" -Name HighConfidenceOptOut -ErrorAction Stop $highConfidenceOptOut = $regValue.HighConfidenceOptOut Write-Host 'Afmelden met hoge betrouwbaarheid: $highConfidenceOptOut' } catch { Write-Warning 'HighConfidenceOptOut-registersleutel niet gevonden of niet toegankelijk' $highConfidenceOptOut = $null Write-Host 'Afmelden met hoge betrouwbaarheid: niet beschikbaar' }
# 5. AvailableUpdates # PS-versie: Alle | Beheer: mogelijk vereist | Systeemvereisten: Geen probeer { $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot" -Name AvailableUpdates -ErrorAction Stop $availableUpdates = $regValue.AvailableUpdates if ($null -ne $availableUpdates) { # Converteren naar hexadecimale indeling $availableUpdatesHex = "0x{0:X}" -f $availableUpdates Write-Host 'Beschikbaar Updates: $availableUpdatesHex' } else { Write-Host 'Beschikbaar Updates: niet beschikbaar' } } catch { Write-Warning 'Registersleutel AvailableUpdates is niet gevonden of niet toegankelijk' $availableUpdates = $null Write-Host 'Beschikbaar Updates: niet beschikbaar' }
# Registry: Servicing Key (3 values)
# 6. UEFICA2023Status # PS-versie: Alle | Beheer: mogelijk vereist | Systeemvereisten: Geen probeer { $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 'Registersleutel UEFICA2023Status is niet gevonden of niet toegankelijk' $uefica 2023Status = $null Write-Host 'UEFI CA 2023-status: niet beschikbaar' }
# 7. UEFICA2023Capable # PS-versie: Alle | Beheer: mogelijk vereist | Systeemvereisten: Geen probeer { $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\Servicing" -Name UEFICA2023Capable -ErrorAction Stop $uefica 2023Capable = $regValue.UEFICA2023Capable Write-Host 'Geschikt voor UEFI CA 2023: $uefica 2023Capable' } catch { Write-Warning UEFICA2023Geschikte registersleutel niet gevonden of niet toegankelijk $uefica 2023Capable = $null Write-Host 'UEFI CA 2023 capable: Not available' }
# 8. UEFICA2023Error # PS-versie: Alle | Beheer: mogelijk vereist | Systeemvereisten: Geen probeer { $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\Servicing" -Name UEFICA2023Error -ErrorAction Stop $uefica 2023Error = $regValue.UEFICA2023Error Write-Host 'UEFI CA 2023-fout: $uefica 2023Error' } catch { Write-Warning 'UEFICA2023Error-registersleutel niet gevonden of niet toegankelijk' $uefica 2023Fout = $null Write-Host 'UEFI CA 2023-fout: niet beschikbaar' }
# Registry: Device Attributes (7 values)
# 9. OEMManufacturerName # PS-versie: Alle | Beheer: mogelijk vereist | Systeemvereisten: Geen probeer { $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 leeg" $oemManufacturerName = "Onbekend" } Write-Host "OEM-fabrikantnaam: $oemManufacturerName" } catch { Write-Warning "OEMManufacturerName registersleutel niet gevonden of niet toegankelijk" $oemManufacturerName = $null Write-Host "OEM-fabrikantnaam: niet beschikbaar" }
# 10. OEMModelSystemFamily # PS-versie: Alle | Beheer: mogelijk vereist | Systeemvereisten: Geen probeer { $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 leeg" $oemModelSystemFamily = "Onbekend" } Write-Host "OEM-modelsysteemfamilie: $oemModelSystemFamily" } catch { Write-Warning registersleutel OEMModelSystemFamily niet gevonden of niet toegankelijk $oemModelSystemFamily = $null Write-Host "OEM-modelsysteemfamilie: niet beschikbaar" }
# 11. OEMModelNumber # PS-versie: Alle | Beheer: mogelijk vereist | Systeemvereisten: Geen probeer { $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 leeg" $oemModelNumber = "Onbekend" } Write-Host "OEM-modelnummer: $oemModelNumber" } catch { Write-Warning "OEMModelNumber registersleutel niet gevonden of niet toegankelijk" $oemModelNumber = $null Write-Host "OEM-modelnummer: niet beschikbaar" }
# 12. FirmwareVersion # PS-versie: Alle | Beheer: mogelijk vereist | Systeemvereisten: Geen probeer { $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name FirmwareVersion -ErrorAction Stop $firmwareVersion = $regValue.FirmwareVersion if ([string]::IsNullOrEmpty($firmwareVersion)) { Write-Warning FirmwareVersion is leeg $firmwareVersion = "Onbekend" } Write-Host firmwareversie: $firmwareVersion } catch { Write-Warning 'FirmwareVersion-registersleutel niet gevonden of niet toegankelijk' $firmwareVersion = $null Write-Host "Firmwareversie: niet beschikbaar" }
# 13. FirmwareReleaseDate # PS-versie: Alle | Beheer: mogelijk vereist | Systeemvereisten: Geen probeer { $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 leeg" $firmwareReleaseDate = "Onbekend" } Write-Host "Firmware releasedatum: $firmwareReleaseDate" } catch { Write-Warning 'FirmwareReleaseDate-registersleutel niet gevonden of niet toegankelijk' $firmwareReleaseDate = $null Write-Host "Firmware releasedatum: niet beschikbaar" }
# 14. OSArchitecture # PS-versie: Alle | Beheer: Nee | Systeemvereisten: Geen probeer { $osArchitecture = $env:PROCESSOR_ARCHITECTURE if ([string]::IsNullOrEmpty($osArchitecture)) { # Probeer terugval in het register $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OSArchitecture -ErrorAction Stop $osArchitecture = $regValue.OSArchitecture } if ([string]::IsNullOrEmpty($osArchitecture)) { Write-Warning 'OSArchitecture kan niet worden bepaald' $osArchitecture = 'Onbekend' } Write-Host 'Architectuur van het besturingssysteem: $osArchitecture' } catch { Write-Warning 'Fout bij het ophalen van OSArchitecture: $_' $osArchitecture = "Onbekend" Write-Host 'Architectuur van het besturingssysteem: $osArchitecture' }
# 15. CanAttemptUpdateAfter (FILETIME) # PS-versie: Alle | Beheer: mogelijk vereist | Systeemvereisten: Geen probeer { $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name CanAttemptUpdateAfter -ErrorAction Stop $canAttemptUpdateAfter = $regValue.CanAttemptUpdateAfter # Converteer FILETIME naar DateTime als het een geldig getal is if ($null -ne $canAttemptUpdateAfter -and $canAttemptUpdateAfter -is [long]) { probeer { $canAttemptUpdateAfter = [DateTime]::FromFileTime($canAttemptUpdateAfter) } catch { Write-Warning Kan CanAttemptUpdateAfter FILETIME niet converteren naar DateTime } } Write-Host 'Kan bijwerken na: $canAttemptUpdateAfter' } catch { Write-Warning "CanAttemptUpdateAfter registersleutel niet gevonden of niet toegankelijk" $canAttemptUpdateAfter = $null Write-Host 'Kan proberen bij te werken na: niet beschikbaar' }
# Event Logs: System Log (5 values)
# 16-20. Event Log queries # PS-versie: 3.0+ | Beheer: mogelijk vereist voor systeemlogboek | Systeemvereisten: Geen probeer { $allEventIds = @(1801, 1808) $events = @(Get-WinEvent -FilterHashtable @{LogName='System'; ID=$allEventIds} -MaxEvents 20 -ErrorAction Stop)
if ($events.Count -eq 0) { Write-Warning 'Geen gebeurtenissen voor beveiligd opstarten (1801/1808) gevonden in systeemlogboek' $latestEventId = $null $bucketId = $null $confidence = $null $event 1801Count = 0 $event 1808Count = 0 Write-Host 'Meest recente gebeurtenis-id: niet beschikbaar' Write-Host 'Bucket-id: niet beschikbaar' Write-Host "Betrouwbaarheid: niet beschikbaar" Write-Host "Event 1801 Count: 0" Write-Host "Aantal gebeurtenis 1808: 0" } else { # 16. LatestEventId $latestEvent = $events | Sort-Object TimeCreated -Aflopend | Select-Object -Eerste 1 if ($null -eq $latestEvent) { Write-Warning 'Kan laatste gebeurtenis niet bepalen' $latestEventId = $null Write-Host 'Meest recente gebeurtenis-id: niet beschikbaar' } else { $latestEventId = $latestEvent.Id Write-Host 'Meest recente gebeurtenis-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 Bucket-id: $bucketId } else { Write-Warning 'BucketId niet gevonden in gebeurtenisbericht' $bucketId = $null Write-Host Bucket-id: Niet gevonden in gebeurtenis } } else { Write-Warning 'Meest recente gebeurtenis of bericht is null, kan BucketId niet extraheren' $bucketId = $null Write-Host Bucket-id: Niet beschikbaar }
# 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 "Betrouwbaarheid: $confidence" } else { Write-Warning 'Betrouwbaarheidsniveau niet gevonden in gebeurtenisbericht' $confidence = $null Write-Host 'Betrouwbaarheid: niet gevonden in gebeurtenis' } } else { Write-Warning 'Meest recente gebeurtenis of bericht is null, kan betrouwbaarheid niet extraheren' $confidence = $null Write-Host "Betrouwbaarheid: niet beschikbaar" }
# 19. Event1801Count $event 1801Array = @($events | Where-Object {$_. Id -eq 1801}) $event 1801Count = $event 1801Array.Count Write-Host "Aantal gebeurtenis 1801: $event 1801Count"
# 20. Event1808Count $event 1808Array = @($events | Where-Object {$_. Id -eq 1808}) $event 1808Count = $event 1808Array.Count Write-Host "Aantal gebeurtenissen 1808: $event 1808Count" } } catch { Write-Warning 'Fout bij het ophalen van gebeurtenislogboeken. Mogelijk zijn beheerdersbevoegdheden vereist: $_" $latestEventId = $null $bucketId = $null $confidence = $null $event 1801Count = 0 $event 1808Count = 0 Write-Host 'Meest recente gebeurtenis-id: fout' Write-Host bucket-id: fout Write-Host 'Betrouwbaarheid: fout' Write-Host "Gebeurtenis 1801 Count: 0" Write-Host "Aantal gebeurtenissen 1808: 0" }
# WMI/CIM Queries (4 values)
# 21. OSVersion # PS-versie: 3.0+ (gebruik Get-WmiObject voor 2.0) | Beheer: Nee | Systeemvereisten: Geen probeer { $osInfo = Get-CimInstance Win32_OperatingSystem -ErrorAction Stop if ($null -eq $osInfo -or [string]::IsNullOrEmpty($osInfo.Version)) { Write-Warning 'Kan de versie van het besturingssysteem niet ophalen' $osVersion = "Onbekend" } else { $osVersion = $osInfo.Version } Write-Host versie van het besturingssysteem: $osVersion } catch { Write-Warning 'Fout bij het ophalen van de versie van het besturingssysteem: $_' $osVersion = "Onbekend" Write-Host 'Versie van besturingssysteem: $osVersion' }
# 22. LastBootTime # PS-versie: 3.0+ (gebruik Get-WmiObject voor 2.0) | Beheer: Nee | Systeemvereisten: Geen probeer { $osInfo = Get-CimInstance Win32_OperatingSystem -ErrorAction Stop if ($null -eq $osInfo -or $null -eq $osInfo.LastBootUpTime) { Write-Warning 'Kan de laatste opstarttijd niet ophalen' $lastBootTime = $null Write-Host 'Laatste opstarttijd: niet beschikbaar' } else { $lastBootTime = $osInfo.LastBootUpTime Write-Host 'Laatste opstarttijd: $lastBootTime' } } catch { Write-Warning 'Fout bij het ophalen van de laatste opstarttijd: $_' $lastBootTime = $null Write-Host 'Laatste opstarttijd: niet beschikbaar' }
# 23. BaseBoardManufacturer # PS-versie: 3.0+ (gebruik Get-WmiObject voor 2.0) | Beheer: Nee | Systeemvereisten: Geen probeer { $baseBoard = Get-CimInstance Win32_BaseBoard -ErrorAction Stop if ($null -eq $baseBoard -or [string]::IsNullOrEmpty($baseBoard.Manufacturer)) { Write-Warning 'Kan de fabrikant van het basisbord niet ophalen' $baseBoardManufacturer = "Onbekend" } else { $baseBoardManufacturer = $baseBoard.Manufacturer } Write-Host "Baseboard Manufacturer: $baseBoardManufacturer" } catch { Write-Warning 'Fout bij het ophalen van de fabrikant van het basisbord: $_' $baseBoardManufacturer = 'Onbekend' Write-Host "Baseboard Manufacturer: $baseBoardManufacturer" }
# 24. BaseBoardProduct # PS-versie: 3.0+ (gebruik Get-WmiObject voor 2.0) | Beheer: Nee | Systeemvereisten: Geen probeer { $baseBoard = Get-CimInstance Win32_BaseBoard -ErrorAction Stop if ($null -eq $baseBoard -or [string]::IsNullOrEmpty($baseBoard.Product)) { Write-Warning 'Kan basisbordproduct niet ophalen' $baseBoardProduct = "Onbekend" } else { $baseBoardProduct = $baseBoard.Product } Write-Host "Baseboard Product: $baseBoardProduct" } catch { Write-Warning 'Fout bij het ophalen van basisbordproduct: $_' $baseBoardProduct = "Onbekend" Write-Host "Baseboard Product: $baseBoardProduct"}