Script de PowerShell para verificar el estado de actualización de Windows
Por lo general, los usuarios que desean saber si la última actualización acumulativa está instalada en su sistema Windows 10 usan este método para verificar el Historial de actualizaciones de Windows 10 . En esta publicación, le mostraremos cómo obtener información sobre parches actuales para Windows 10 mediante un script de PowerShell.(how to get current patch information for Windows 10 using a PowerShell script.)
(PowerShell)Script de PowerShell para verificar el estado de actualización de Windows(Windows Update)
El script de PowerShell se puede usar para informar en qué sistema operativo se encuentra actualmente una computadora con Windows 10 , así como también qué actualización es la última disponible para el dispositivo. También puede informar sobre todas las actualizaciones de Windows publicadas para la versión de Windows 10 en la que se encuentra actualmente una estación de trabajo.
Cuando ejecute el script, se mostrará la siguiente información:
- Versión actual del sistema operativo
- Edición actual del sistema operativo
- Número de compilación del sistema operativo actual
- La actualización instalada que corresponde a ese número de compilación, así como el número de KB y un enlace a la página de información.
- La última actualización disponible para la versión del sistema operativo
Para obtener la información del parche actual de Windows 10 mediante el script de (Windows 10)PowerShell , debe crear y ejecutar el script de PowerShell(create and run the PowerShell script) mediante el siguiente código de 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
Puede excluir las actualizaciones de vista previa(Preview) o fuera de banda(Out-of-band) disponibles que son más recientes que la que instaló para que no se informen como la última actualización disponible, por lo que puede concentrarse en las actualizaciones acumulativas ejecutando el siguiente comando:
Get-CurrentPatchInfo -ExcludePreview -ExcludeOutofBand
También puede enumerar todas las actualizaciones de Windows que (Windows)Microsoft ha publicado para su versión de sistema operativo con el siguiente comando:
Get-CurrentPatchInfo -ListAvailable
Si desea excluir la vista previa(Preview) y las actualizaciones fuera de banda(Out-of-band) de la lista, pero enumera todas las actualizaciones de Windows que (Windows)Microsoft ha publicado para su versión de sistema operativo, ejecute el siguiente comando:
Get-CurrentPatchInfo -ListAvailable -ExcludePreview -ExcludeOutofBand
¡Eso es todo!
Lea a continuación(Read next) : El sitio del navegador del módulo PowerShell(PowerShell Module Browser site) le permite buscar cmdlets y paquetes.
Related posts
Reset Windows Update Client usando PowerShell Script
Fix CUESTIONES BOTONES EN EL Windows Update page
Mejores prácticas para mejorar Windows Update installation veces
Dónde encontrar y cómo leer Windows Update log en Windows 11/10
Cómo corregir Windows Update error 0x80240061
Fix 0x80071a2d Windows Update error
Cómo administrar o detener Windows 10 Update usando WAU Manager
Cómo Fix Windows Update Error Code 80244010
Windows Update no se pudo instalar con Error Code 0x8024004a
Cómo restablecer los componentes Windows Update en Windows 11/10
Windows Update que no se descarga ni se instala, Error 0x80070543
Cómo ocultar Windows Updates usando PowerShell en Windows 10
Cómo corregir Windows Update error 0xca020007
Cómo desactivar el Windows Update automático en Windows 10
Fijar el Windows Update service no pudo ser detenido
Fix Windows Update error 0x80240439 en Windows 10
Error 0xc19001e1, Windows 10 Update Error al instalar
Error al instalar Windows Update con error code 0x8024200D
Fix error 0x8007042c para Windows Update or Firewall
Cómo implementar actualizaciones utilizando Windows Update para Business