Skript PowerShell na kontrolu stavu služby Windows Update
Používatelia, ktorí chcú zistiť, či je v ich systéme Windows 10 nainštalovaná najnovšia kumulatívna aktualizácia, zvyčajne používajú túto metódu na kontrolu histórie aktualizácií systému Windows 10 . V tomto príspevku vám ukážeme, ako získať aktuálne informácie o opravách pre Windows 10 pomocou skriptu PowerShell.(how to get current patch information for Windows 10 using a PowerShell script.)
(PowerShell)Skript PowerShell na kontrolu stavu služby Windows Update
Skript PowerShell možno použiť na hlásenie, na ktorej zostave operačného systému je počítač so systémom Windows 10(Windows 10) momentálne nainštalovaný, ako aj na to, ktorá aktualizácia je najnovšou aktualizáciou dostupnou pre zariadenie. Môže tiež podávať správy o všetkých aktualizáciách systému Windows(Windows) publikovaných pre verziu systému Windows 10 , na ktorej pracovná stanica momentálne pracuje.
Po spustení skriptu sa zobrazia nasledujúce informácie:
- Aktuálna verzia OS
- Aktuálne vydanie OS
- Aktuálne číslo zostavy OS
- Nainštalovaná aktualizácia, ktorá zodpovedá číslu zostavy, ako aj číslu KB a odkazu na informačnú stránku
- Najnovšia dostupná aktualizácia pre verziu OS
Ak chcete získať informácie o aktuálnych opravách systému Windows 10(Windows 10) pomocou skriptu PowerShell , musíte vytvoriť a spustiť skript PowerShell(create and run the PowerShell script) pomocou kódu nižšie z 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
Dostupné aktualizácie Preview(Preview) alebo Out-of-band , ktoré sú novšie ako tie, ktoré ste nainštalovali, môžete vylúčiť z nahlásenia ako najnovšiu dostupnú aktualizáciu, takže sa môžete sústrediť len na kumulatívne aktualizácie spustením príkazu nižšie:
Get-CurrentPatchInfo -ExcludePreview -ExcludeOutofBand
Môžete tiež zobraziť zoznam všetkých aktualizácií systému Windows , ktoré (Windows)spoločnosť Microsoft(Microsoft) zverejnila pre vašu verziu operačného systému, pomocou nasledujúceho príkazu:
Get-CurrentPatchInfo -ListAvailable
Ak chcete zo zoznamu vylúčiť aktualizácie Preview a Out-of-band , ale uviesť všetky aktualizácie systému Windows , ktoré (Windows)spoločnosť Microsoft(Microsoft) zverejnila pre vašu verziu operačného systému, spustite príkaz nižšie:
Get-CurrentPatchInfo -ListAvailable -ExcludePreview -ExcludeOutofBand
To je všetko!
Čítať ďalej(Read next) : Stránka PowerShell Module Browser(PowerShell Module Browser site) vám umožňuje vyhľadávať cmdlety a balíčky.
Related posts
Obnovte klienta Windows Update pomocou skriptu PowerShell
Tlačidlo Opraviť problémy na stránke Windows Update
Osvedčené postupy na zlepšenie času inštalácie služby Windows Update
Kde nájsť a ako čítať denník služby Windows Update v systéme Windows 11/10
Ako opraviť chybu Windows Update 0x80240061
Nové funkcie vo verzii Windows 10 20H2 Aktualizácia z októbra 2020
Opravte chybu služby Windows Update 0x80070659
Chyby služby Windows Update 0x800705b4, 0x8024402f alebo 0x8024002e [Opravené]
Opraviť chybu Windows Update C8000266?
Nastavenia služby Windows Update a zabezpečenia v systéme Windows 10
Ako skryť aktualizácie systému Windows pomocou PowerShell v systéme Windows 11/10
Čo je služba Windows Update Medic Service (WaaSMedicSVC.exe)?
Opravte chybu Windows Update 0x80070422 v systéme Windows 10
Windows Update sa nepodarilo nainštalovať s kódom chyby 0x8024200D
Windows Update a vypnutie/reštart nefungujú a nezmiznú
Opravte chybu Windows Update 0x80240439 v systéme Windows 10
Ako opraviť kód chyby služby Windows Update 0x80070012
Klientovi Windows Update sa nepodarilo zistiť s chybou 0x8024001f
Ako nasadiť aktualizácie pomocou služby Windows Update for Business
Ako vypnúť automatickú aktualizáciu systému Windows v systéme Windows 11/10