חל על
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

תאריך פרסום מקורי: ה-17 בנובמבר 2025

מזהה KB: 5072718

קובץ Script לדוגמה של איסוף נתוני מלאי של אתחול מאובטח

העתק והדבק קובץ Script לדוגמה זה ושנה לפי הצורך עבור הסביבה שלך: קובץ Script לדוגמה של אוסף נתוני מלאי אתחול מאובטח.

Sample_Secure_Boot_Inventory_Data_Collection_script

# 1. HostName # PS Version: All | מרכז הניהול: לא | דרישות מערכת: ללא נסה את {     $hostname = $env:COMPUTERNAME     if ([string]::IsNullOrEmpty($hostname)) {         Write-Warning "לא היתה אפשרות לקבוע את שם המחשב המארח"         $hostname = "Unknown"     אני לא יכול לעשות את     Write-Host "Hostname: $hostname" } תפוס את {     Write-Warning "שגיאה באחזור שם מארח: $_"     $hostname = "שגיאה"     Write-Host "Hostname: $hostname" }

# 2. CollectionTime # PS Version: All | מרכז הניהול: לא | דרישות מערכת: ללא נסה את {     $collectionTime = Get-Date     if ($null -eq $collectionTime) {         Write-Warning "לא היתה אפשרות לאחזר את התאריך/השעה הנוכחיים"         $collectionTime = "Unknown"     אני לא יכול לעשות את     Write-Host "זמן אוסף: $collectionTime" } תפוס את {     Write-Warning "שגיאה באחזור תאריך/שעה: $_"     $collectionTime = "שגיאה"     Write-Host "זמן איסוף: $collectionTime" }

# Registry: Secure Boot Main Key (3 values)

# 3. SecureBootEnabled # PS גירסה: 3.0+ | מרכז הניהול: ייתכן שתידרש | דרישות מערכת: מערכת התומכת ב- UEFI/אתחול מאובטח נסה את {     $secureBootEnabled = Confirm-SecureBootUEFI -ErrorAction Stop     Write-Host "אתחול מאובטח זמין: $secureBootEnabled" } תפוס את {     Write-Warning "לא ניתן לקבוע את מצב האתחול המאובטח באמצעות cmdlet: $_"     # נסה חזרה לרישום     נסה את {         $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\State" -Name UEFISecureBootEnabled -ErrorAction Stop         $secureBootEnabled = [bool]$regValue.UEFISecureBootEnabled         Write-Host "אתחול מאובטח זמין: $secureBootEnabled"     } תפוס את {         Write-Warning "לא ניתן לקבוע את מצב האתחול המאובטח באמצעות הרישום. ייתכן שהמערכת אינה תומכת באתחול UEFI/Secure."         $secureBootEnabled = $null         Write-Host "אתחול מאובטח זמין: לא זמין"     אני לא יכול לעשות את }

# 4. HighConfidenceOptOut # PS Version: All | מרכז הניהול: ייתכן שתידרש | דרישות מערכת: ללא נסה את {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot" -Name HighConfidenceOptOut -ErrorAction Stop     $highConfidenceOptOut = $regValue.HighConfidenceOptOut     Write-Host "ביטול הצטרפות במהימנות גבוהה: $highConfidenceOptOut" } תפוס את {     Write-Warning "מפתח הרישום HighConfidenceOptOut לא נמצא או אינו נגיש"     $highConfidenceOptOut = $null     Write-Host "ביטול הצטרפות במהימנות גבוהה: לא זמין" }

# 5. AvailableUpdates # PS Version: All | מרכז הניהול: ייתכן שתידרש | דרישות מערכת: ללא נסה את {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot" -Name AvailableUpdates -ErrorAction Stop     $availableUpdates = $regValue.AvailableUpdates     if ($null -ne $availableUpdates) {         # המר לתבנית הקסדצימאלית         $availableUpdatesHex = "0x{0:X}" -f $availableUpdates         Write-Host "זמין עדכונים: $availableUpdatesHex"     } אחר {         Write-Host "זמין עדכונים: לא זמין"     אני לא יכול לעשות את } תפוס את {     Write-Warning "מפתח הרישום AvailableUpdates לא נמצא או אינו נגיש"     $availableUpdates = $null     Write-Host "זמין עדכונים: לא זמין" }

# Registry: Servicing Key (3 values)

# 6. UEFICA2023Status # PS Version: All | מרכז הניהול: ייתכן שתידרש | דרישות מערכת: ללא נסה את {     $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" } תפוס את {     Write-Warning "מפתח הרישום UEFICA2023Status לא נמצא או לא נגיש"     $uefica 2023Status = $null     Write-Host "מצב רשות אישורים 2023 של UEFI: לא זמין" }

# 7. UEFICA2023Capable # PS Version: All | מרכז הניהול: ייתכן שתידרש | דרישות מערכת: ללא נסה את {     $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" } תפוס את {     Write-Warning "מפתח הרישום UEFICA2023Capable לא נמצא או אינו נגיש"     $uefica 2023Capable = $null     Write-Host "UEFI CA 2023 Capable: Not Available" }

# 8. UEFICA2023Error # PS Version: All | מרכז הניהול: ייתכן שתידרש | דרישות מערכת: ללא נסה את {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\Servicing" -Name UEFICA2023Error -ErrorAction Stop     $uefica 2023Error = $regValue.UEFICA2023Error     Write-Host "UEFI CA 2023 Error: $uefica 2023Error" } תפוס את {     Write-Warning "מפתח הרישום UEFICA2023Error לא נמצא או לא נגיש"     $uefica 2023Error = $null     Write-Host "שגיאת UEFI CA 2023: לא זמין" }

# Registry: Device Attributes (7 values)

# 9. OEMManufacturerName # PS Version: All | מרכז הניהול: ייתכן שתידרש | דרישות מערכת: ללא נסה את {     $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 = "Unknown"     אני לא יכול לעשות את     Write-Host "שם יצרן OEM: $oemManufacturerName" } תפוס את {     Write-Warning "מפתח הרישום של OEMManufacturerName לא נמצא או אינו נגיש"     $oemManufacturerName = $null     Write-Host "שם יצרן OEM: לא זמין" }

# 10. OEMModelSystemFamily # PS Version: All | מרכז הניהול: ייתכן שתידרש | דרישות מערכת: ללא נסה את {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OEMModelSystemFamily -ErrorAction Stop     $oemModelSystemFamily = $regValue.OEMModelSystemFamily     if ([string]::IsNullOrEmpty($oemModelSystemFamily)) {         Write-Warning "OEMModelSystemFamily ריק"         $oemModelSystemFamily = "Unknown"     אני לא יכול לעשות את     Write-Host "משפחת מערכות המודלים של OEM: $oemModelSystemFamily" } תפוס את {     Write-Warning "מפתח הרישום של OEMModelSystemFamily לא נמצא או אינו נגיש"     $oemModelSystemFamily = $null     Write-Host "משפחת מערכות מודלים של OEM: לא זמינה" }

# 11. OEMModelNumber # PS Version: All | מרכז הניהול: ייתכן שתידרש | דרישות מערכת: ללא נסה את {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OEMModelNumber -ErrorAction Stop     $oemModelNumber = $regValue.OEMModelNumber     if ([string]::IsNullOrEmpty($oemModelNumber)) {         Write-Warning "OEMModelNumber ריק"         $oemModelNumber = "Unknown"     אני לא יכול לעשות את     Write-Host "מספר דגם OEM: $oemModelNumber" } תפוס את {     Write-Warning "מפתח הרישום OEMModelNumber לא נמצא או אינו נגיש"     $oemModelNumber = $null     Write-Host "מספר דגם OEM: לא זמין" }

# 12. FirmwareVersion # PS Version: All | מרכז הניהול: ייתכן שתידרש | דרישות מערכת: ללא נסה את {     $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 empty"         $firmwareVersion = "Unknown"     אני לא יכול לעשות את     Write-Host "גירסת קושחה: $firmwareVersion" } תפוס את {     Write-Warning "מפתח הרישום של FirmwareVersion לא נמצא או אינו נגיש"     $firmwareVersion = $null     Write-Host "גירסת קושחה: לא זמינה" }

# 13. FirmwareReleaseDate # PS Version: All | מרכז הניהול: ייתכן שתידרש | דרישות מערכת: ללא נסה את {     $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 = "Unknown"     אני לא יכול לעשות את     Write-Host "תאריך הפצה של קושחה: $firmwareReleaseDate" } תפוס את {     Write-Warning "FirmwareReleaseDate registry key not found or incessible"     $firmwareReleaseDate = $null     Write-Host "תאריך הפצה של קושחה: לא זמין" }

# 14. OSArchitecture # PS Version: All | מרכז הניהול: לא | דרישות מערכת: ללא נסה את {     $osArchitecture = $env:PROCESSOR_ARCHITECTURE     if ([string]::IsNullOrEmpty($osArchitecture)) {         # נסה חזרה לרישום         $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OSArchitecture -ErrorAction Stop         $osArchitecture = $regValue.OSArchitecture     אני לא יכול לעשות את     if ([string]::IsNullOrEmpty($osArchitecture)) {         Write-Warning "לא היתה אפשרות לקבוע את OSArchitecture"         $osArchitecture = "Unknown"     אני לא יכול לעשות את     Write-Host "ארכיטקטורת מערכת הפעלה: $osArchitecture" } תפוס את {     Write-Warning "שגיאה באחזור OSArchitecture: $_"     $osArchitecture = "Unknown"     Write-Host "ארכיטקטורת מערכת הפעלה: $osArchitecture" }

# 15. CanAttemptUpdateAfter (FILETIME) # PS Version: All | מרכז הניהול: ייתכן שתידרש | דרישות מערכת: ללא נסה את {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name CanAttemptUpdateAfter -ErrorAction Stop     $canAttemptUpdateAfter = $regValue.CanAttemptUpdateAfter     # המר FILETIME ל- DateTime אם זהו מספר חוקי     if ($null -ne $canAttemptUpdateAfter -and $canAttemptUpdateAfter -is [long]) {         נסה את {             $canAttemptUpdateAfter = [DateTime]::FromFileTime($canAttemptUpdateAfter)         } תפוס את {             Write-Warning "לא היתה אפשרות להמיר את CanAttemptUpdateAfter FILETIME ל- DateTime"         אני לא יכול לעשות את     אני לא יכול לעשות את     Write-Host "יכול לנסות לבצע עדכון לאחר: $canAttemptUpdateAfter" } תפוס את {     Write-Warning "CanAttemptUpdateAfter מפתח הרישום לא נמצא או לא נגיש"     $canAttemptUpdateAfter = $null     Write-Host "יכול לנסות לבצע עדכון לאחר: לא זמין" }

# Event Logs: System Log (5 values)

# 16-20. Event Log queries # PS גירסה: 3.0+ | מרכז הניהול: ייתכן שתידרש עבור יומן המערכת | דרישות מערכת: ללא נסה את {     $allEventIds = @(1801, 1808)     $events = @(Get-WinEvent -FilterHashtable @{LogName='System'; ID=$allEventIds} -MaxEvents 20 -ErrorAction Stop)

    if ($events.Count -eq 0) {מקשים         Write-Warning "לא נמצאו אירועי אתחול מאובטח (1801/1808) ביומן המערכת"         $latestEventId = $null         $bucketId = $null         $confidence = $null         $event 1801Count = 0         $event 1808Count = 0         Write-Host "מזהה האירוע העדכני ביותר: לא זמין"         Write-Host "Bucket ID: Not Available"         Write-Host "מהימנות: לא זמין"         Write-Host "ספירת אירוע 1801: 0"         Write-Host "אירוע 1808 Count: 0"     } אחר {         # 16. LatestEventId         $latestEvent = $events | Sort-Object זמןCreated -סדר יורד | Select-Object -ראשון 1         if ($null -eq $latestEvent) {             Write-Warning "לא היתה אפשרות לקבוע את האירוע האחרון"             $latestEventId = $null             Write-Host "מזהה האירוע העדכני ביותר: לא זמין"         } אחר {             $latestEventId = $latestEvent.Id             Write-Host "מזהה האירוע העדכני ביותר: $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]. חתוך()                 Write-Host "Bucket ID: $bucketId"             } אחר {                 Write-Warning "BucketId לא נמצא בה הודעת אירוע"                 $bucketId = $null                 Write-Host "Bucket ID: Not Found in Event"             אני לא יכול לעשות את         } אחר {             Write-Warning "האירוע או ההודעה העדכניים ביותר הם Null, אין אפשרות לחלץ 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]. חתוך()                 Write-Host "מהימנות: $confidence"             } אחר {                 Write-Warning "רמת מהימנות לא נמצאה בה הודעת אירוע"                 $confidence = $null                 Write-Host "מהימנות: לא נמצא באירוע"             אני לא יכול לעשות את         } אחר {             Write-Warning "האירוע או ההודעה העדכניים ביותר הם Null, אין אפשרות לחלץ את הביטחון"             $confidence = $null             Write-Host "מהימנות: לא זמין"         }

        # 19. Event1801Count $event 1801Array = @($events | Where-Object {$_. מזהה -eq 1801})         $event 1801Count = $event 1801Array.Count         Write-Host "ספירת אירוע 1801: $event 1801Count"

        # 20. Event1808Count $event 1808Array = @($events | Where-Object {$_. מזהה -eq 1808})         $event 1808Count = $event 1808Array.Count         Write-Host "ספירת אירוע 1808: $event 1808Count"     אני לא יכול לעשות את } תפוס את {     Write-Warning "שגיאה באחזור יומני אירועים. עשוי לדרוש הרשאות מנהל מערכת: $_"     $latestEventId = $null     $bucketId = $null     $confidence = $null     $event 1801Count = 0     $event 1808Count = 0     Write-Host "מזהה האירוע העדכני ביותר: שגיאה"     Write-Host "Bucket ID: Error"     Write-Host "מהימנות: שגיאה"     Write-Host "ספירת אירוע 1801: 0"     Write-Host "אירוע 1808 ספירה: 0" }

# WMI/CIM Queries (4 values)

# 21. OSVersion # PS גירסה: 3.0+ (השתמש Get-WmiObject עבור 2.0) | מרכז הניהול: לא | דרישות מערכת: ללא נסה את {     $osInfo = Get-CimInstance Win32_OperatingSystem -ErrorAction Stop     if ($null -eq $osInfo -or [string]::IsNullOrEmpty($osInfo.Version)) {         Write-Warning "לא היתה אפשרות לאחזר גירסת מערכת הפעלה"         $osVersion = "Unknown"     } אחר {         $osVersion = $osInfo.Version     אני לא יכול לעשות את     Write-Host "גירסת מערכת ההפעלה: $osVersion" } תפוס את {     Write-Warning "שגיאה באחזור גירסת מערכת ההפעלה: $_"     $osVersion = "Unknown"     Write-Host "גירסת מערכת ההפעלה: $osVersion" }

# 22. LastBootTime # PS גירסה: 3.0+ (השתמש Get-WmiObject עבור 2.0) | מרכז הניהול: לא | דרישות מערכת: ללא נסה את {     $osInfo = Get-CimInstance Win32_OperatingSystem -ErrorAction Stop     if ($null -eq $osInfo -or $null -eq $osInfo.LastBootUpTime) {         Write-Warning "לא היתה אפשרות לאחזר את זמן האתחול האחרון"         $lastBootTime = $null         Write-Host "זמן האתחול האחרון: לא זמין"     } אחר {         $lastBootTime = $osInfo.LastBootUpTime         Write-Host "שעת האתחול האחרון: $lastBootTime"     אני לא יכול לעשות את } תפוס את {     Write-Warning "שגיאה באחזור זמן האתחול האחרון: $_"     $lastBootTime = $null     Write-Host "שעת האתחול האחרונה: לא זמין" }

# 23. BaseBoardManufacturer # PS גירסה: 3.0+ (השתמש Get-WmiObject עבור 2.0) | מרכז הניהול: לא | דרישות מערכת: ללא נסה את {     $baseBoard = Get-CimInstance Win32_BaseBoard -ErrorAction Stop     if ($null -eq $baseBoard -or [string]::IsNullOrEmpty($baseBoard.Manufacturer)) {         Write-Warning "לא היתה אפשרות לאחזר את יצרן לוח הבסיס"         $baseBoardManufacturer = "Unknown"     } אחר {         $baseBoardManufacturer = $baseBoard.Manufacturer     אני לא יכול לעשות את     Write-Host "יצרן לוח הבסיס: $baseBoardManufacturer" } תפוס את {     Write-Warning "שגיאה באחזור יצרן לוח הבסיס: $_"     $baseBoardManufacturer = "Unknown"     Write-Host "יצרן לוח הבסיס: $baseBoardManufacturer" }

# 24. BaseBoardProduct # PS גירסה: 3.0+ (השתמש Get-WmiObject עבור 2.0) | מרכז הניהול: לא | דרישות מערכת: ללא נסה את {     $baseBoard = Get-CimInstance Win32_BaseBoard -ErrorAction Stop     if ($null -eq $baseBoard -or [string]::IsNullOrEmpty($baseBoard.Product)) {         Write-Warning "לא היתה אפשרות לאחזר מוצר של לוח בסיס"         $baseBoardProduct = "Unknown"     } אחר {         $baseBoardProduct = $baseBoard.Product     אני לא יכול לעשות את     Write-Host "Baseboard Product: $baseBoardProduct" } תפוס את {     Write-Warning "שגיאה באחזור מוצר לוח הבסיס: $_"     $baseBoardProduct = "Unknown"     Write-Host "מוצר Baseboard: $baseBoardProduct"}

זקוק לעזרה נוספת?

מעוניין באפשרויות נוספות?

גלה את יתרונות המנוי, עיין בקורסי הדרכה, למד כיצד לאבטח את המכשיר שלך ועוד.