Η διατήρηση των Windows 11 ενημερωμένα είναι ζωτικής σημασίας για την ασφάλεια και την απόδοση. Ενώ μπορείτε να ελέγξετε μη αυτόματα το Ιστορικό του Windows Update, η χρήση μιας δέσμης ενεργειών PowerShell προσφέρει έναν ταχύτερο και πιο λεπτομερή τρόπο προβολής της κατάστασης ενημέρωσης του συστήματός σας. Αυτό το άρθρο θα σας δείξει πώς να χρησιμοποιήσετε μια δέσμη ενεργειών PowerShell για να ελέγξετε τις τρέχουσες πληροφορίες ενημέρωσης κώδικα των Windows 11 και τις διαθέσιμες ενημερώσεις.
Το σενάριο PowerShell που θα χρησιμοποιήσουμε παρέχει εκτενείς πληροφορίες σχετικά με την εγκατάσταση των Windows 11, όπως:
- Τρέχουσα έκδοση λειτουργικού συστήματος
- Επεξεργασία λειτουργικού συστήματος
- Αριθμός έκδοσης λειτουργικού συστήματος
- Τελευταία εγκατεστημένη ενημέρωση (με αριθμό KB και σύνδεσμο πληροφοριών)
- Η πιο πρόσφατη διαθέσιμη ενημέρωση
Αυτό το σενάριο λειτουργεί τόσο για συστήματα Windows 11 όσο και για Windows 10. Ας δούμε πώς να το χρησιμοποιήσετε.
Βήμα 1:Ανοίξτε το PowerShell ως διαχειριστής. Κάντε δεξί κλικ στο κουμπί Έναρξη και επιλέξτε "Windows PowerShell (Διαχειριστής)" από το μενού.
Βήμα 2:Αντιγράψτε το ακόλουθο σενάριο PowerShell και αποθηκεύστε το ως αρχείο .ps1 (π.χ. "Get-WindowsUpdateInfo.ps1") στην επιφάνεια εργασίας σας:
[CmdletBinding()]
Param(
[switch]$ListAllAvailable,
[switch]$ExcludePreview,
[switch]$ExcludeOutofBand
)
$ProgressPreference="SilentlyContinue"
$URI = "https://aka.ms/WindowsUpdateHistory"
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:SOFTWAREMicrosoftWindows NTCurrentVersion' -Name ProductName).ProductName
Try
{
$Version = (Get-ItemProperty 'HKLM:SOFTWAREMicrosoftWindows NTCurrentVersion' -Name ReleaseID -ErrorAction Stop).ReleaseID
}
Catch
{
$Version = "N/A"
}
$CurrentBuild = (Get-ItemProperty 'HKLM:SOFTWAREMicrosoftWindows NTCurrentVersion' -Name CurrentBuild).CurrentBuild
$UBR = (Get-ItemProperty 'HKLM:SOFTWAREMicrosoftWindows NTCurrentVersion' -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]
})
}
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('.') -and $_.outerHTML -notmatch "Preview" -and $_.outerHTML -notmatch "Out-of-band"}
}
ElseIf ($ExcludePreview)
{
$AllAvailable = $VersionDataRaw | where {$_.outerHTML -match $CurrentWindowsVersion.'OS Build'.Split('.') -and $_.outerHTML -notmatch "Preview"}
}
ElseIf ($ExcludeOutofBand)
{
$AllAvailable = $VersionDataRaw | where {$_.outerHTML -match $CurrentWindowsVersion.'OS Build'.Split('.') -and $_.outerHTML -notmatch "Out-of-band"}
}
Else
{
$AllAvailable = $VersionDataRaw | where {$_.outerHTML -match $CurrentWindowsVersion.'OS Build'.Split('.')}
}
$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('.') -and $_.outerHTML -notmatch "Out-of-band" -and $_.outerHTML -notmatch "Preview"} | Select -First 1
}
ElseIf ($ExcludePreview)
{
$LatestAvailablePatch = $VersionDataRaw | where {$_.outerHTML -match $CurrentWindowsVersion.'OS Build'.Split('.') -and $_.outerHTML -notmatch "Preview"} | Select -First 1
}
ElseIf ($ExcludeOutofBand)
{
$LatestAvailablePatch = $VersionDataRaw | where {$_.outerHTML -match $CurrentWindowsVersion.'OS Build'.Split('.') -and $_.outerHTML -notmatch "Out-of-band"} | Select -First 1
}
Else
{
$LatestAvailablePatch = $VersionDataRaw | where {$_.outerHTML -match $CurrentWindowsVersion.'OS Build'.Split('.')} | 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
Βήμα 3:Εκτελέστε το σενάριο πληκτρολογώντας την ακόλουθη εντολή στο PowerShell:
.Get-WindowsUpdateInfo.ps1
Αυτή η εντολή θα εμφανίσει την τρέχουσα έκδοση των Windows, τον αριθμό έκδοσης και την πιο πρόσφατη εγκατεστημένη ενημέρωση.
Περισσότερα ανάγνωση:Πώς να ελέγξετε την κατάσταση SMART των μονάδων δίσκου στα Windows 11 και 10
Βήμα 4:Για να εξαιρέσετε ενημερώσεις προεπισκόπησης και εκτός ζώνης από τα αποτελέσματα, χρησιμοποιήστε αυτήν την εντολή:
.Get-WindowsUpdateInfo.ps1 -ExcludePreview -ExcludeOutofBand
Αυτή η επιλογή είναι χρήσιμη εάν θέλετε να εστιάσετε μόνο στις τυπικές αθροιστικές ενημερώσεις.
Βήμα 5:Για να δείτε όλες τις διαθέσιμες ενημερώσεις για την έκδοση των Windows, χρησιμοποιήστε την ακόλουθη εντολή:
.Get-WindowsUpdateInfo.ps1 -ListAllAvailable
Αυτό θα σας δείξει μια λίστα με όλες τις ενημερώσεις που έχει δημοσιεύσει η Microsoft για τη συγκεκριμένη έκδοση των Windows.
Βήμα 6:Εάν θέλετε να δείτε όλες τις διαθέσιμες ενημερώσεις εκτός από τις ενημερώσεις προεπισκόπησης και εκτός ζώνης, χρησιμοποιήστε αυτήν την εντολή:
.Get-WindowsUpdateInfo.ps1 -ListAllAvailable -ExcludePreview -ExcludeOutofBand
Αυτή η εντολή συνδυάζει τις επιλογές για να σας δώσει μια εστιασμένη λίστα τυπικών ενημερώσεων.
Η χρήση αυτής της δέσμης ενεργειών PowerShell απλοποιεί τη διαδικασία ελέγχου της κατάστασης ενημέρωσης των Windows 11. Είναι ιδιαίτερα χρήσιμο για επαγγελματίες πληροφορικής που διαχειρίζονται πολλά συστήματα ή για χρήστες που θέλουν λεπτομερείς πληροφορίες σχετικά με τις ενημερώσεις των Windows χωρίς να περιηγηθούν σε πολλά μενού.




![[2024 ενημερωμένο] Πώς να ξεκλειδώσετε το iPhone με σπασμένη οθόνη](https://elsefix.com/tech/afton/wp-content/uploads/cache/2025/04/how-to-unlock-iphone-with-broken-screen.webp.webp.webp)






