Σενάριο PowerShell για έλεγχο της κατάστασης του Windows Update
Συνήθως, οι χρήστες που επιθυμούν να μάθουν εάν η πιο πρόσφατη αθροιστική ενημέρωση είναι εγκατεστημένη στο σύστημά τους Windows 10 χρησιμοποιούν αυτήν τη μέθοδο για να ελέγξουν το Ιστορικό ενημερώσεων των Windows 10 . Σε αυτήν την ανάρτηση, θα σας δείξουμε πώς να λαμβάνετε τις τρέχουσες πληροφορίες ενημέρωσης κώδικα για τα Windows 10 χρησιμοποιώντας μια δέσμη ενεργειών PowerShell.(how to get current patch information for Windows 10 using a PowerShell script.)
Σενάριο PowerShell(PowerShell) για έλεγχο της κατάστασης του Windows Update
Η δέσμη ενεργειών PowerShell μπορεί να χρησιμοποιηθεί για να αναφέρει σε ποιο λειτουργικό σύστημα βρίσκεται ένας υπολογιστής με Windows 10 , καθώς και ποια ενημέρωση είναι η πιο πρόσφατη διαθέσιμη ενημέρωση στη συσκευή. Μπορεί επίσης να αναφέρει για όλες τις ενημερώσεις των Windows που δημοσιεύονται για την έκδοση των Windows 10 στην οποία βρίσκεται επί του παρόντος ο σταθμός εργασίας.
Όταν εκτελείτε το σενάριο, θα εμφανιστούν οι ακόλουθες πληροφορίες:
- Τρέχουσα έκδοση λειτουργικού συστήματος
- Τρέχουσα έκδοση λειτουργικού συστήματος
- Τρέχων αριθμός έκδοσης λειτουργικού συστήματος
- Η εγκατεστημένη ενημέρωση που αντιστοιχεί σε αυτόν τον αριθμό έκδοσης, καθώς και τον αριθμό KB και έναν σύνδεσμο προς τη σελίδα πληροφοριών
- Η πιο πρόσφατη διαθέσιμη ενημέρωση για την έκδοση του λειτουργικού συστήματος
Για να λάβετε πληροφορίες τρέχουσας ενημέρωσης κώδικα των Windows 10 χρησιμοποιώντας το σενάριο (Windows 10)PowerShell , πρέπει να δημιουργήσετε και να εκτελέσετε το σενάριο PowerShell(create and run the PowerShell script) χρησιμοποιώντας τον παρακάτω κώδικα από το Github .
[CmdletBinding()] Param( [switch]$ListAllAvailable, [switch]$ExcludePreview, [switch]$ExcludeOutofBand ) $ProgressPreference = 'SilentlyContinue' $URI = "https://aka.ms/WindowsUpdateHistory" # Windows 10 release history Function Get-MyWindowsVersion { [CmdletBinding()] Param ( $ComputerName = $env:COMPUTERNAME ) $Table = New-Object System.Data.DataTable $Table.Columns.AddRange(@("ComputerName","Windows Edition","Version","OS Build")) $ProductName = (Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion' -Name ProductName).ProductName Try { $Version = (Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion' -Name ReleaseID -ErrorAction Stop).ReleaseID } Catch { $Version = "N/A" } $CurrentBuild = (Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion' -Name CurrentBuild).CurrentBuild $UBR = (Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion' -Name UBR).UBR $OSVersion = $CurrentBuild + "." + $UBR $TempTable = New-Object System.Data.DataTable $TempTable.Columns.AddRange(@("ComputerName","Windows Edition","Version","OS Build")) [void]$TempTable.Rows.Add($env:COMPUTERNAME,$ProductName,$Version,$OSVersion) Return $TempTable } Function Convert-ParsedArray { Param($Array) $ArrayList = New-Object System.Collections.ArrayList foreach ($item in $Array) { [void]$ArrayList.Add([PSCustomObject]@{ Update = $item.outerHTML.Split('>')[1].Replace('</a','').Replace('—',' - ') KB = "KB" + $item.href.Split('/')[-1] InfoURL = "https://support.microsoft.com" + $item.href OSBuild = $item.outerHTML.Split('(OS ')[1].Split()[1] # Just for sorting }) } Return $ArrayList } If ($PSVersionTable.PSVersion.Major -ge 6) { $Response = Invoke-WebRequest -Uri $URI -ErrorAction Stop } else { $Response = Invoke-WebRequest -Uri $URI -UseBasicParsing -ErrorAction Stop } If (!($Response.Links)) { throw "Response was not parsed as HTML"} $VersionDataRaw = $Response.Links | where {$_.outerHTML -match "supLeftNavLink" -and $_.outerHTML -match "KB"} $CurrentWindowsVersion = Get-MyWindowsVersion -ErrorAction Stop If ($ListAllAvailable) { If ($ExcludePreview -and $ExcludeOutofBand) { $AllAvailable = $VersionDataRaw | where {$_.outerHTML -match $CurrentWindowsVersion.'OS Build'.Split('.')[0] -and $_.outerHTML -notmatch "Preview" -and $_.outerHTML -notmatch "Out-of-band"} } ElseIf ($ExcludePreview) { $AllAvailable = $VersionDataRaw | where {$_.outerHTML -match $CurrentWindowsVersion.'OS Build'.Split('.')[0] -and $_.outerHTML -notmatch "Preview"} } ElseIf ($ExcludeOutofBand) { $AllAvailable = $VersionDataRaw | where {$_.outerHTML -match $CurrentWindowsVersion.'OS Build'.Split('.')[0] -and $_.outerHTML -notmatch "Out-of-band"} } Else { $AllAvailable = $VersionDataRaw | where {$_.outerHTML -match $CurrentWindowsVersion.'OS Build'.Split('.')[0]} } $UniqueList = (Convert-ParsedArray -Array $AllAvailable) | Sort OSBuild -Descending -Unique $Table = New-Object System.Data.DataTable [void]$Table.Columns.AddRange(@('Update','KB','InfoURL')) foreach ($Update in $UniqueList) { [void]$Table.Rows.Add( $Update.Update, $Update.KB, $Update.InfoURL ) } Return $Table } $CurrentPatch = $VersionDataRaw | where {$_.outerHTML -match $CurrentWindowsVersion.'OS Build'} | Select -First 1 If ($ExcludePreview -and $ExcludeOutofBand) { $LatestAvailablePatch = $VersionDataRaw | where {$_.outerHTML -match $CurrentWindowsVersion.'OS Build'.Split('.')[0] -and $_.outerHTML -notmatch "Out-of-band" -and $_.outerHTML -notmatch "Preview"} | Select -First 1 } ElseIf ($ExcludePreview) { $LatestAvailablePatch = $VersionDataRaw | where {$_.outerHTML -match $CurrentWindowsVersion.'OS Build'.Split('.')[0] -and $_.outerHTML -notmatch "Preview"} | Select -First 1 } ElseIf ($ExcludeOutofBand) { $LatestAvailablePatch = $VersionDataRaw | where {$_.outerHTML -match $CurrentWindowsVersion.'OS Build'.Split('.')[0] -and $_.outerHTML -notmatch "Out-of-band"} | Select -First 1 } Else { $LatestAvailablePatch = $VersionDataRaw | where {$_.outerHTML -match $CurrentWindowsVersion.'OS Build'.Split('.')[0]} | Select -First 1 } $Table = New-Object System.Data.DataTable [void]$Table.Columns.AddRange(@('OSVersion','OSEdition','OSBuild','CurrentInstalledUpdate','CurrentInstalledUpdateKB','CurrentInstalledUpdateInfoURL','LatestAvailableUpdate','LastestAvailableUpdateKB','LastestAvailableUpdateInfoURL')) [void]$Table.Rows.Add( $CurrentWindowsVersion.Version, $CurrentWindowsVersion.'Windows Edition', $CurrentWindowsVersion.'OS Build', $CurrentPatch.outerHTML.Split('>')[1].Replace('</a','').Replace('—',' - '), "KB" + $CurrentPatch.href.Split('/')[-1], "https://support.microsoft.com" + $CurrentPatch.href, $LatestAvailablePatch.outerHTML.Split('>')[1].Replace('</a','').Replace('—',' - '), "KB" + $LatestAvailablePatch.href.Split('/')[-1], "https://support.microsoft.com" + $LatestAvailablePatch.href ) Return $Table
Μπορείτε να εξαιρέσετε τις διαθέσιμες ενημερώσεις προεπισκόπησης(Preview) ή εκτός ζώνης(Out-of-band) που είναι πιο πρόσφατες από αυτήν που έχετε εγκαταστήσει από την αναφορά ως την πιο πρόσφατη διαθέσιμη ενημέρωση, ώστε να μπορείτε απλώς να εστιάσετε στις αθροιστικές ενημερώσεις εκτελώντας την παρακάτω εντολή:
Get-CurrentPatchInfo -ExcludePreview -ExcludeOutofBand
Μπορείτε επίσης να παραθέσετε όλες τις ενημερώσεις των Windows που έχει δημοσιεύσει η (Windows)Microsoft για την έκδοση του λειτουργικού σας συστήματος με την ακόλουθη εντολή:
Get-CurrentPatchInfo -ListAvailable
Εάν θέλετε να εξαιρέσετε τις ενημερώσεις προεπισκόπησης(Preview) και εκτός ζώνης(Out-of-band) από τη λίστα, αλλά αναφέρετε όλες τις ενημερώσεις των Windows που έχει δημοσιεύσει η (Windows)Microsoft για την έκδοση του λειτουργικού σας συστήματος, εκτελέστε την παρακάτω εντολή:
Get-CurrentPatchInfo -ListAvailable -ExcludePreview -ExcludeOutofBand
Αυτό είναι!
Διαβάστε στη συνέχεια(Read next) : Ο ιστότοπος του προγράμματος περιήγησης PowerShell Module(PowerShell Module Browser site) σάς επιτρέπει να αναζητάτε cmdlet και πακέτα.
Related posts
Επαναφέρετε το Windows Update Client χρησιμοποιώντας το PowerShell Script
Κουμπί επίλυσης προβλημάτων στη σελίδα του Windows Update
Βέλτιστες πρακτικές για τη βελτίωση των χρόνων εγκατάστασης του Windows Update
Πού να βρείτε και πώς να διαβάσετε τη σύνδεση του Windows Update στα Windows 11/10
Πώς να διορθώσετε το σφάλμα Windows Update 0x80240061
Πώς να διαχειριστείτε ή να σταματήσετε την ενημέρωση των Windows 10 χρησιμοποιώντας το WAU Manager
Διορθώστε το σφάλμα Windows Update 80072EFE
Πώς να διορθώσετε τον κωδικό σφάλματος του Windows Update 0x80070012
Η εγκατάσταση του Windows Update απέτυχε, Σφάλμα 0x80070643
Το Windows Update κόλλησε τη λήψη ενημερώσεων στα Windows 11/10
Πώς να επαναφέρετε τα στοιχεία του Windows Update στα Windows 11/10
Διορθώστε το σφάλμα Windows Update 0x80070541 στα Windows 10
Διορθώστε το σφάλμα ενημέρωσης των Windows 10 0x800703F1
Πώς να ενημερώσετε άλλα προϊόντα της Microsoft χρησιμοποιώντας το Windows Update
Σφάλματα Windows Update 0x800705b4, 0x8024402f ή 0x8024002e [Διορθώθηκε]
Αποτυχία εγκατάστασης του Windows Update με κωδικό σφάλματος 0x8024200D
Τι είναι η υπηρεσία Windows Update Medic Service (WaaSMedicSVC.exe);
Διορθώστε το σφάλμα 0x8007042c για το Windows Update ή το Τείχος προστασίας
Τα Windows συνεχίζουν να προσφέρουν ή να εγκαθιστούν την ίδια ενημέρωση
Επεξήγηση του ρυθμού εξυπηρέτησης ενημέρωσης των Windows 10