ينطبق على
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

تاريخ النشر الأصلي: 17 نوفمبر 2025

معرف KB: 5072718

نموذج البرنامج النصي لمجموعة بيانات مخزون التمهيد الآمن

انسخ هذا البرنامج النصي النموذجي والصقه وقم بتعديله حسب الحاجة لبيئتك: البرنامج النصي Sample Secure Boot Inventory Data Collection.

Sample_Secure_Boot_Inventory_Data_Collection_script

# 1. HostName # إصدار PS: الكل | مسؤول: لا | متطلبات النظام: لا شيء جرب {     $hostname = $env:COMPUTERNAME     if ([string]::IsNullOrEmpty($hostname)) {         Write-Warning "تعذر تحديد اسم المضيف"         $hostname = "غير معروف"     }     Write-Host "اسم المضيف: $hostname" } التقاط {     Write-Warning "خطأ في استرداد اسم المضيف: $_"     $hostname = "خطأ"     Write-Host "اسم المضيف: $hostname" }

# 2. CollectionTime # إصدار PS: الكل | مسؤول: لا | متطلبات النظام: لا شيء جرب {     $collectionTime = Get-Date     if ($null -eq $collectionTime) {         Write-Warning "تعذر استرداد التاريخ/الوقت الحالي"         $collectionTime = "غير معروف"     }     Write-Host "وقت التجميع: $collectionTime" } التقاط {     Write-Warning "خطأ في استرداد التاريخ/الوقت: $_"     $collectionTime = "خطأ"     Write-Host "وقت المجموعة: $collectionTime" }

# Registry: Secure Boot Main Key (3 values)

# 3. SecureBootEnabled # إصدار PS: 3.0+ | مسؤول: قد يكون مطلوبا | متطلبات النظام: نظام قادر على UEFI/Secure Boot جرب {     $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 Boot."         $secureBootEnabled = $null         Write-Host "تمكين التمهيد الآمن: غير متوفر"     } }

# 4. HighConfidenceOptOut # إصدار PS: الكل | مسؤول: قد يكون مطلوبا | متطلبات النظام: لا شيء جرب {     $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: الكل | مسؤول: قد يكون مطلوبا | متطلبات النظام: لا شيء جرب {     $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: الكل | مسؤول: قد يكون مطلوبا | متطلبات النظام: لا شيء جرب {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\Servicing" -Name UEFICA2023Status -ErrorAction Stop     $uefica 2023Status = $regValue.UEFICA2023Status     Write-Host "حالة UEFI CA 2023: $uefica 2023Status" } التقاط {     Write-Warning "لم يتم العثور على مفتاح التسجيل UEFICA2023Status أو تعذر الوصول إليه"     $uefica 2023Status = $null     Write-Host "حالة UEFI CA 2023: غير متوفر" }

# 7. UEFICA2023Capable # إصدار PS: الكل | مسؤول: قد يكون مطلوبا | متطلبات النظام: لا شيء جرب {     $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 قادر: غير متوفر" }

# 8. UEFICA2023Error # إصدار PS: الكل | مسؤول: قد يكون مطلوبا | متطلبات النظام: لا شيء جرب {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\Servicing" -Name UEFICA2023Error -ErrorAction Stop     $uefica 2023Error = $regValue.UEFICA2023Error     Write-Host "خطأ UEFI CA 2023: $uefica 2023Error" } التقاط {     Write-Warning "لم يتم العثور على مفتاح التسجيل UEFICA2023Error أو تعذر الوصول إليه"     $uefica 2023الخطأ = $null     Write-Host "خطأ UEFI CA 2023: غير متوفر" }

# Registry: Device Attributes (7 values)

# 9. OEMManufacturerName # إصدار PS: الكل | مسؤول: قد يكون مطلوبا | متطلبات النظام: لا شيء جرب {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OEMManufacturerName -ErrorAction Stop     $oemManufacturerName = $regValue.OEMManufacturerName     if ([string]::IsNullOrEmpty($oemManufacturerName)) {         Write-Warning "OEMManufacturerName فارغ"         $oemManufacturerName = "غير معروف"     }     Write-Host "اسم الشركة المصنعة للشركة المصنعة للمعدات الأصلية: $oemManufacturerName" } التقاط {     Write-Warning "لم يتم العثور على مفتاح التسجيل OEMManufacturerName أو تعذر الوصول إليه"     $oemManufacturerName = $null     Write-Host "اسم الشركة المصنعة للشركة المصنعة للمعدات الأصلية: غير متوفر" }

# 10. OEMModelSystemFamily # إصدار PS: الكل | مسؤول: قد يكون مطلوبا | متطلبات النظام: لا شيء جرب {     $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 = "غير معروف"     }     Write-Host "عائلة نظام نموذج الشركة المصنعة للمعدات الأصلية: $oemModelSystemFamily" } التقاط {     Write-Warning "لم يتم العثور على مفتاح التسجيل OEMModelSystemFamily أو تعذر الوصول إليه"     $oemModelSystemFamily = $null     Write-Host "عائلة نظام نموذج الشركة المصنعة للمعدات الأصلية: غير متوفر" }

# 11. OEMModelNumber # إصدار PS: الكل | مسؤول: قد يكون مطلوبا | متطلبات النظام: لا شيء جرب {     $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 = "غير معروف"     }     Write-Host "رقم نموذج الشركة المصنعة للمعدات الأصلية: $oemModelNumber" } التقاط {     Write-Warning "لم يتم العثور على مفتاح التسجيل OEMModelNumber أو تعذر الوصول إليه"     $oemModelNumber = $null     Write-Host "رقم نموذج الشركة المصنعة للمعدات الأصلية: غير متوفر" }

# 12. FirmwareVersion # إصدار PS: الكل | مسؤول: قد يكون مطلوبا | متطلبات النظام: لا شيء جرب {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name FirmwareVersion -ErrorAction Stop     $firmwareVersion = $regValue.FirmwareVersion     if ([string]::IsNullOrEmpty($firmwareVersion)) {         Write-Warning "FirmwareVersion فارغ"         $firmwareVersion = "غير معروف"     }     Write-Host "إصدار البرنامج الثابت: $firmwareVersion" } التقاط {     Write-Warning "لم يتم العثور على مفتاح التسجيل FirmwareVersion أو تعذر الوصول إليه"     $firmwareVersion = $null     Write-Host "إصدار البرنامج الثابت: غير متوفر" }

# 13. FirmwareReleaseDate # إصدار PS: الكل | مسؤول: قد يكون مطلوبا | متطلبات النظام: لا شيء جرب {     $regValue = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name FirmwareReleaseDate -ErrorAction Stop     $firmwareReleaseDate = $regValue.FirmwareReleaseDate     if ([string]::IsNullOrEmpty($firmwareReleaseDate)) {         Write-Warning "FirmwareReleaseDate فارغ"         $firmwareReleaseDate = "غير معروف"     }     Write-Host "تاريخ إصدار البرنامج الثابت: $firmwareReleaseDate" } التقاط {     Write-Warning "لم يتم العثور على مفتاح التسجيل FirmwareReleaseDate أو تعذر الوصول إليه"     $firmwareReleaseDate = $null     Write-Host "تاريخ إصدار البرنامج الثابت: غير متوفر" }

# 14. OSArchitecture # إصدار PS: الكل | مسؤول: لا | متطلبات النظام: لا شيء جرب {     $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 = "غير معروف"     }     Write-Host "تصميم نظام التشغيل: $osArchitecture" } التقاط {     Write-Warning "خطأ في استرداد OSArchitecture: $_"     $osArchitecture = "غير معروف"     Write-Host "تصميم نظام التشغيل: $osArchitecture" }

# 15. CanAttemptUpdateAfter (FILETIME) # إصدار PS: الكل | مسؤول: قد يكون مطلوبا | متطلبات النظام: لا شيء جرب {     $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 "معرف المستودع: غير متوفر"         Write-Host "الثقة: غير متوفر"         Write-Host "عدد الأحداث 1801: 0"         Write-Host "عدد الأحداث 1808: 0"     } آخر {         # 16. LatestEventId         $latestEvent = $events | Sort-Object TimeCreated -تنازلي | 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]. Trim()                 Write-Host "معرف المستودع: $bucketId"             } آخر {                 Write-Warning "لم يتم العثور على BucketId في رسالة الحدث"                 $bucketId = $null                 Write-Host "معرف المستودع: غير موجود في الحدث"             }         } آخر {             Write-Warning "أحدث حدث أو رسالة فارغة، لا يمكن استخراج BucketId"             $bucketId = $null             Write-Host "معرف المستودع: غير متوفر"         }

        # 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 "الثقة: $confidence"             } آخر {                 Write-Warning "لم يتم العثور على مستوى الثقة في رسالة الحدث"                 $confidence = $null                 Write-Host "الثقة: غير موجود في الحدث"             }         } آخر {             Write-Warning "أحدث حدث أو رسالة فارغة، لا يمكن استخراج الثقة"             $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 "معرف المستودع: خطأ"     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 = "غير معروف"     } آخر {         $osVersion = $osInfo.Version     }     Write-Host "إصدار نظام التشغيل: $osVersion" } التقاط {     Write-Warning "خطأ في استرداد إصدار نظام التشغيل: $_"     $osVersion = "غير معروف"     Write-Host "إصدار نظام التشغيل: $osVersion" }

# 22. LastBootTime # إصدار PS: 3.0+ (استخدم Get-WmiObject ل 2.0) | مسؤول: لا | متطلبات النظام: لا شيء جرب {     $osInfo = Get-CimInstance Win32_OperatingSystem -ErrorAction Stop     إذا ($null -eq $osInfo -أو $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 = "غير معروف"     } آخر {         $baseBoardManufacturer = $baseBoard.الشركة المصنعة     }     Write-Host "الشركة المصنعة لللوحة الأساسية: $baseBoardManufacturer" } التقاط {     Write-Warning "خطأ في استرداد الشركة المصنعة لللوحة الأساسية: $_"     $baseBoardManufacturer = "غير معروف"     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 = "غير معروف"     } آخر {         $baseBoardProduct = $baseBoard.Product     }     Write-Host "Baseboard Product: $baseBoardProduct" } التقاط {     Write-Warning "خطأ في استرداد منتج اللوحة الأساسية: $_"     $baseBoardProduct = "غير معروف"     Write-Host "Baseboard Product: $baseBoardProduct"}

هل تحتاج إلى مزيد من المساعدة؟

الخروج من الخيارات إضافية؟

استكشف مزايا الاشتراك، واستعرض الدورات التدريبية، وتعرف على كيفية تأمين جهازك، والمزيد.