Script do PowerShell para verificar o status do Windows Update
Normalmente, os usuários que desejam descobrir se a atualização cumulativa mais recente está instalada em seu sistema Windows 10 usam esse método para verificar o histórico de atualizações do Windows 10 . Nesta postagem, mostraremos como obter informações de patch atuais para o Windows 10 usando um script do PowerShell.(how to get current patch information for Windows 10 using a PowerShell script.)
(PowerShell)Script do PowerShell para verificar o status do Windows Update(Windows Update)
O script do PowerShell pode ser usado para relatar em qual versão do sistema operacional um computador (PowerShell)Windows 10 está atualmente, bem como qual atualização é a atualização mais recente disponível para o dispositivo. Ele também pode relatar todas as atualizações do Windows publicadas para a versão do Windows 10 em(Windows 10) que uma estação de trabalho está atualmente.
Ao executar o script, as seguintes informações serão exibidas:
- Versão atual do SO
- Edição atual do SO
- Número da versão atual do SO
- A atualização instalada que corresponde a esse número de compilação, bem como o número da KB e um link para a página de informações
- A atualização mais recente disponível para a versão do SO
Para obter informações do patch atual do Windows 10 usando o script do (Windows 10)PowerShell , você precisa criar e executar o script do PowerShell(create and run the PowerShell script) usando o código abaixo do 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
Você pode excluir atualizações de visualização(Preview) ou fora de banda(Out-of-band) disponíveis que são mais recentes do que a que você instalou de serem relatadas como a atualização disponível mais recente, para que você possa se concentrar apenas nas atualizações cumulativas executando o comando abaixo:
Get-CurrentPatchInfo -ExcludePreview -ExcludeOutofBand
Você também pode listar todas as atualizações do Windows(Windows) que a Microsoft publicou para a versão do seu sistema operacional com o seguinte comando:
Get-CurrentPatchInfo -ListAvailable
Se você quiser excluir as atualizações de visualização(Preview) e fora de banda(Out-of-band) da lista, mas listar todas as atualizações do Windows que a Microsoft publicou para sua versão do sistema operacional, execute o comando abaixo:
Get-CurrentPatchInfo -ListAvailable -ExcludePreview -ExcludeOutofBand
É isso!
Leia a seguir(Read next) : O site do PowerShell Module Browser(PowerShell Module Browser site) permite pesquisar cmdlets e pacotes.
Related posts
Reset Windows Update Client usando PowerShell Script
Fix Problemas no Windows Update page
Melhores práticas para melhorar Windows Update installation vezes
Onde encontrar e como ler Windows Update log em Windows 11/10
Como corrigir Windows Update error 0x80240061
Windows Update erros 0x800705b4, 0x8024402f, 0x80070422 [Fixed}
Fix Windows Update error 0x80070541 no Windows 10
Falha ao instalar Windows Update com error code 0x8024200D
Windows 10 Update Servicing Cadence explicado
Windows Update Client Falha ao detectar com error 0x8024001f
Como implantar atualizações usando Windows Update para Business
Fix Windows Update error 0x8e5e03fa no Windows 10
Como redefinir componentes Windows Update em Windows 11/10
Como Fix Windows Update Error 0xc1900201
Windows Update Falha ao instalar - Error 0x80070643
Windows Update Error 0X800B0101, Installer encontrou um erro
Como atualizar outros produtos Microsoft usando Windows Update
Como esconder Windows Updates usando PowerShell em Windows 10
Error 0xc19001e1, Windows 10 Update Falha ao instalar
Fix 0x80071a2d Windows Update error