Αρχική ημερομηνία δημοσίευσης: 17 Νοεμβρίου 2025
KB ID: 5072718
Δείγμα δέσμης ενεργειών συλλογής δεδομένων αποθέματος ασφαλούς εκκίνησης
Αντιγράψτε και επικολλήστε αυτό το δείγμα δέσμης ενεργειών και τροποποιήστε όπως απαιτείται για το περιβάλλον σας: Η δέσμη ενεργειών "Δείγμα ασφαλούς εκκίνησης απογραφής δεδομένων συλλογής δεδομένων".
Sample_Secure_Boot_Inventory_Data_Collection_script
# 1. HostName # Έκδοση PS: Όλα | Διαχείριση: Όχι | Απαιτήσεις συστήματος: Καμία δοκιμάστε το { $hostname = $env:ΟΝΟΜΑ ΥΠΟΛΟΓΙΣΤΗ if ([συμβολοσειρά]::IsNullOrEmpty($hostname)) { Write-Warning "Δεν ήταν δυνατή η καθορισμός του Hostname" $hostname = "Άγνωστο" } Write-Host "Hostname: $hostname" } αλίευση { Write-Warning "Σφάλμα κατά την ανάκτηση του ονόματος κεντρικού υπολογιστή: $_" $hostname = "Σφάλμα" Write-Host "Hostname: $hostname" }
# 2. CollectionTime # Έκδοση PS: Όλα | Διαχείριση: Όχι | Απαιτήσεις συστήματος: Καμία δοκιμάστε το { $collectionTime = Ημερομηνία λήψης 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 Write-Host "Ενεργοποιημένη ασφαλής εκκίνηση: $secureBootEnabled" } αλίευση { Write-Warning "Δεν είναι δυνατός ο προσδιορισμός της κατάστασης ασφαλούς εκκίνησης μέσω cmdlet: $_" # Δοκιμάστε την επαναφορά του μητρώου δοκιμάστε το { $regValue = Get-ItemProperty -Διαδρομή "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\State" -Όνομα UEFISecureBootEnabled -ErrorAction Stop $secureBootEnabled = [bool]$regValue.UEFISecureBootEnabled Write-Host "Ενεργοποιημένη ασφαλής εκκίνηση: $secureBootEnabled" } αλίευση { Write-Warning "Δεν είναι δυνατός ο προσδιορισμός της κατάστασης ασφαλούς εκκίνησης μέσω μητρώου. Το σύστημα ενδέχεται να μην υποστηρίζει UEFI/Ασφαλή εκκίνηση." $secureBootEnabled = $null Write-Host "Ενεργοποιημένη ασφαλής εκκίνηση: Μη διαθέσιμη" } }
# 4. HighConfidenceOptOut # Έκδοση PS: Όλα | Διαχείριση: Ενδέχεται να απαιτηθεί | Απαιτήσεις συστήματος: Καμία δοκιμάστε το { $regValue = Get-ItemProperty -Διαδρομή "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 -Διαδρομή "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 -Διαδρομή "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 -Διαδρομή "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 -Διαδρομή "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 2023Error = $null Write-Host "Σφάλμα UEFI CA 2023: Μη διαθέσιμο" }
# Registry: Device Attributes (7 values)
# 9. OEMManufacturerName # Έκδοση PS: Όλα | Διαχείριση: Ενδέχεται να απαιτηθεί | Απαιτήσεις συστήματος: Καμία δοκιμάστε το { $regValue = Get-ItemProperty -Διαδρομή "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OEMManufacturerName -ErrorAction Stop $oemManufacturerName = $regValue.OEMManufacturerName if ([συμβολοσειρά]::IsNullOrEmpty($oemManufacturerName)) { Write-Warning "OEMManufacturerName is empty" $oemManufacturerName = "Άγνωστο" } Write-Host "Όνομα κατασκευαστή OEM: $oemManufacturerName" } αλίευση { Write-Warning "Το κλειδί μητρώου OEMManufacturerName δεν βρέθηκε ή δεν είναι προσβάσιμο" $oemManufacturerName = $null Write-Host "Όνομα κατασκευαστή OEM: Μη διαθέσιμο" }
# 10. OEMModelSystemFamily # Έκδοση PS: Όλα | Διαχείριση: Ενδέχεται να απαιτηθεί | Απαιτήσεις συστήματος: Καμία δοκιμάστε το { $regValue = Get-ItemProperty -Διαδρομή "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OEMModelSystemFamily -ErrorAction Stop $oemModelSystemFamily = $regValue.OEMModelSystemFamily if ([συμβολοσειρά]::IsNullOrEmpty($oemModelSystemFamily)) { Write-Warning "OEMModelSystemFamily is empty" $oemModelSystemFamily = "Άγνωστο" } Write-Host "Οικογένεια συστήματος μοντέλων OEM: $oemModelSystemFamily" } αλίευση { Write-Warning "Το κλειδί μητρώου OEMModelSystemFamily δεν βρέθηκε ή δεν είναι προσβάσιμο" $oemModelSystemFamily = $null Write-Host "Οικογένεια συστήματος μοντέλων OEM: Μη διαθέσιμο" }
# 11. OEMModelNumber # Έκδοση PS: Όλα | Διαχείριση: Ενδέχεται να απαιτηθεί | Απαιτήσεις συστήματος: Καμία δοκιμάστε το { $regValue = Get-ItemProperty -Διαδρομή "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OEMModelNumber -ErrorAction Stop $oemModelNumber = $regValue.OEMModelNumber if ([συμβολοσειρά]::IsNullOrEmpty($oemModelNumber)) { Write-Warning "OEMModelNumber is empty" $oemModelNumber = "Άγνωστο" } Write-Host "Αριθμός μοντέλου OEM: $oemModelNumber" } αλίευση { Write-Warning "Το κλειδί μητρώου OEMModelNumber δεν βρέθηκε ή δεν είναι προσβάσιμο" $oemModelNumber = $null Write-Host "Αριθμός μοντέλου OEM: Μη διαθέσιμος" }
# 12. FirmwareVersion # Έκδοση PS: Όλα | Διαχείριση: Ενδέχεται να απαιτηθεί | Απαιτήσεις συστήματος: Καμία δοκιμάστε το { $regValue = Get-ItemProperty -Διαδρομή "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name FirmwareVersion -ErrorAction Stop $firmwareVersion = $regValue.FirmwareVersion if ([συμβολοσειρά]::IsNullOrEmpty($firmwareVersion)) { Write-Warning "Το FirmwareVersion είναι κενό" $firmwareVersion = "Άγνωστο" } Write-Host "Έκδοση υλικολογισμικού: $firmwareVersion" } αλίευση { Write-Warning "Το κλειδί μητρώου firmwareVersion δεν βρέθηκε ή δεν είναι προσβάσιμο" $firmwareVersion = $null Write-Host "Έκδοση υλικολογισμικού: Δεν διατίθεται" }
# 13. FirmwareReleaseDate # Έκδοση PS: Όλα | Διαχείριση: Ενδέχεται να απαιτηθεί | Απαιτήσεις συστήματος: Καμία δοκιμάστε το { $regValue = Get-ItemProperty -Διαδρομή "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name FirmwareReleaseDate -ErrorAction Stop $firmwareReleaseDate = $regValue.FirmwareReleaseDate if ([συμβολοσειρά]::IsNullOrEmpty($firmwareReleaseDate)) { Write-Warning "Το FirmwareReleaseDate είναι κενό" $firmwareReleaseDate = "Άγνωστο" } Write-Host "Ημερομηνία κυκλοφορίας υλικολογισμικού: $firmwareReleaseDate" } αλίευση { Write-Warning "Το κλειδί μητρώου FirmwareReleaseDate δεν βρέθηκε ή δεν είναι προσβάσιμο" $firmwareReleaseDate = $null Write-Host "Ημερομηνία κυκλοφορίας υλικολογισμικού: Δεν διατίθεται" }
# 14. OSArchitecture # Έκδοση PS: Όλα | Διαχείριση: Όχι | Απαιτήσεις συστήματος: Καμία δοκιμάστε το { $osArchitecture = $env:PROCESSOR_ARCHITECTURE if ([συμβολοσειρά]::IsNullOrEmpty($osArchitecture)) { # Δοκιμάστε την επαναφορά του μητρώου $regValue = Get-ItemProperty -Διαδρομή "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\DeviceAttributes" -Name OSArchitecture -ErrorAction Stop $osArchitecture = $regValue.OSArchitecture } if ([συμβολοσειρά]::IsNullOrEmpty($osArchitecture)) { Write-Warning "Η OSArchitecture δεν μπορούσε να καθοριστεί" $osArchitecture = "Άγνωστο" } Write-Host "Αρχιτεκτονική λειτουργικού συστήματος: $osArchitecture" } αλίευση { Write-Warning "Σφάλμα κατά την ανάκτηση της OSArchitecture: $_" $osArchitecture = "Άγνωστο" Write-Host "Αρχιτεκτονική λειτουργικού συστήματος: $osArchitecture" }
# 15. CanAttemptUpdateAfter (FILETIME) # Έκδοση PS: Όλα | Διαχείριση: Ενδέχεται να απαιτηθεί | Απαιτήσεις συστήματος: Καμία δοκιμάστε το { $regValue = Get-ItemProperty -Διαδρομή "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: 0" } άλλος { # 16. LatestEventId $latestEvent = $events | Sort-Object ΧρόνοςΔημιουγία -Φθίνουσα | 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 "Bucket ID: $bucketId" } άλλος { Write-Warning "Το BucketId δεν βρέθηκε στο μήνυμα συμβάντος" $bucketId = $null Write-Host "Αναγνωριστικό κάδου: Δεν βρέθηκε στο συμβάν" } } άλλος { 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]. Trim() 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 "Αναγνωριστικό κάδου: Σφάλμα" 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 if ($null -eq $osInfo -ή [συμβολοσειρά]::IsNullOrEmpty($osInfo.Version)) { Write-Warning "Δεν ήταν δυνατή η ανάκτηση της έκδοσης του λειτουργικού συστήματος" $osVersion = "Άγνωστο" } άλλος { $osVersion = $osInfo.Έκδοση } Write-Host "Έκδοση λειτουργικού συστήματος: $osVersion" } αλίευση { Write-Warning "Σφάλμα κατά την ανάκτηση της έκδοσης του λειτουργικού συστήματος: $_" $osVersion = "Άγνωστο" Write-Host "Έκδοση λειτουργικού συστήματος: $osVersion" }
# 22. LastBootTime # Έκδοση PS: 3.0+ (χρήση Get-WmiObject για 2.0) | Διαχείριση: Όχι | Απαιτήσεις συστήματος: Καμία δοκιμάστε το { $osInfo = Get-CimInstance Win32_OperatingSystem -Διακοπή errorAction if ($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 if ($null -eq $baseBoard -or [συμβολοσειρά]::IsNullOrEmpty($baseBoard.Manufacturer)) { Write-Warning "Δεν ήταν δυνατή η ανάκτηση του κατασκευαστή του baseboard" $baseBoardManufacturer = "Άγνωστο" } άλλος { $baseBoardManufacturer = $baseBoard.Κατασκευαστής } Write-Host "Κατασκευαστής baseboard: $baseBoardManufacturer" } αλίευση { Write-Warning "Σφάλμα κατά την ανάκτηση του κατασκευαστή του baseboard: $_" $baseBoardManufacturer = "Άγνωστο" Write-Host "Κατασκευαστής baseboard: $baseBoardManufacturer" }
# 24. BaseBoardProduct # Έκδοση PS: 3.0+ (χρήση Get-WmiObject για 2.0) | Διαχείριση: Όχι | Απαιτήσεις συστήματος: Καμία δοκιμάστε το { $baseBoard = Get-CimInstance Win32_BaseBoard -Διακοπή errorAction if ($null -eq $baseBoard -ή [συμβολοσειρά]::IsNullOrEmpty($baseBoard.Product)) { Write-Warning "Δεν ήταν δυνατή η ανάκτηση του προϊόντος baseboard" $baseBoardProduct = "Άγνωστο" } άλλος { $baseBoardProduct = $baseBoard.Προϊόν } Write-Host "Προϊόν baseboard: $baseBoardProduct" } αλίευση { Write-Warning "Σφάλμα κατά την ανάκτηση του προϊόντος baseboard: $_" $baseBoardProduct = "Άγνωστο" Write-Host "Προϊόν baseboard: $baseBoardProduct"}