Script di PowerShell per controllare lo stato di Windows Update
Di solito, gli utenti che desiderano scoprire se l'ultimo aggiornamento cumulativo è installato sul proprio sistema Windows 10 utilizzano questo metodo per controllare la cronologia degli aggiornamenti di Windows 10 . In questo post, ti mostreremo come ottenere le informazioni sulla patch corrente per Windows 10 utilizzando uno script PowerShell.(how to get current patch information for Windows 10 using a PowerShell script.)
(PowerShell)Script di PowerShell per controllare lo stato di Windows Update
Lo script PowerShell può essere utilizzato per segnalare quale build del sistema operativo è attualmente su un computer Windows 10 e quale aggiornamento è l'ultimo aggiornamento disponibile per il dispositivo. Può anche segnalare tutti gli aggiornamenti di Windows pubblicati per la versione di Windows 10 su cui è attualmente attiva una workstation.
Quando esegui lo script, verranno visualizzate le seguenti informazioni:
- Versione attuale del sistema operativo
- Edizione del sistema operativo corrente
- Numero di build del sistema operativo corrente
- L'aggiornamento installato che corrisponde a quel numero di build, nonché il numero KB e un collegamento alla pagina delle informazioni
- L'ultimo aggiornamento disponibile per la versione del sistema operativo
Per ottenere le informazioni sulla patch corrente di Windows 10 usando lo script (Windows 10)PowerShell , devi creare ed eseguire lo script PowerShell(create and run the PowerShell script) usando il codice seguente da 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
Puoi escludere gli aggiornamenti in anteprima(Preview) o fuori banda(Out-of-band) disponibili più recenti di quello che hai installato dalla segnalazione come l'ultimo aggiornamento disponibile, quindi puoi concentrarti solo sugli aggiornamenti cumulativi eseguendo il comando seguente:
Get-CurrentPatchInfo -ExcludePreview -ExcludeOutofBand
Puoi anche elencare tutti gli aggiornamenti di Windows che (Windows)Microsoft ha pubblicato per la versione del tuo sistema operativo con il comando seguente:
Get-CurrentPatchInfo -ListAvailable
Se desideri escludere l' anteprima(Preview) e gli aggiornamenti fuori banda(Out-of-band) dall'elenco ma elencare tutti gli aggiornamenti di Windows pubblicati da (Windows)Microsoft per la versione del tuo sistema operativo, esegui il comando seguente:
Get-CurrentPatchInfo -ListAvailable -ExcludePreview -ExcludeOutofBand
Questo è tutto!
Leggi il prossimo(Read next) : Il sito del browser del modulo PowerShell(PowerShell Module Browser site) consente di cercare cmdlet e pacchetti.
Related posts
Reset Windows Update Client usando PowerShell Script
Pulsante di problemi Fix su Windows Update page
Le migliori pratiche per migliorare Windows Update installation volte
Dove trovare e come leggere Windows Update log in Windows 11/10
Come correggere Windows Update error 0x80240061
Win Update Stop: Disabilita Windows Updates su Windows 10
Come Fix Windows Update Error 0xc1900201
Windows Update Medic Service (WaaSMedicSVC.exe) in Windows 10
Impossibile installare Windows Update con error code 0x8024200D
Windows 10 Update Servicing Cadence ha spiegato
Fix Windows Update Error C8000266?
Windows Update Error 0X800B0101, Installer ha riscontrato un errore
Block Unsupported Hardware Popup in Windows Update
Fix Windows Update error 0x80070541 su Windows 10
Windows Update Errori 0x800705B4, 0x8024402F, 0x80070422 [Fixed}
Fix Windows 10 Update Error 0x800703F1
Fix Windows Update error 0x8e5e03fa su Windows 10
Windows 10 continua a offrire o installare lo stesso Update
Fix Windows Update Error 0x800f0989 su Windows 11/10
Fix error 0x8007042c per Windows Update or Firewall