PowerShell-komentosarja tarkistaaksesi Windows Updaten tilan
Yleensä käyttäjät, jotka haluavat selvittää, onko viimeisin kumulatiivinen päivitys asennettu Windows 10 -järjestelmään, käyttävät tätä menetelmää tarkistaakseen Windows 10 -päivityshistorian . Tässä viestissä näytämme, kuinka saat nykyiset korjaustiedostotiedot Windows 10:lle PowerShell-komentosarjan avulla.(how to get current patch information for Windows 10 using a PowerShell script.)
PowerShell -komentosarja tarkistaaksesi Windows Updaten(Windows Update) tilan
PowerShell - komentosarjan avulla voidaan raportoida, mikä käyttöjärjestelmäversio Windows 10 -tietokoneessa on tällä hetkellä päällä ja mikä päivitys on viimeisin laitteelle saatavilla oleva päivitys. Se voi myös raportoida kaikista Windows -päivityksistä, jotka on julkaistu työaseman tällä hetkellä käytössä olevalle Windows 10 -versiolle.(Windows 10)
Kun suoritat komentosarjan, seuraavat tiedot tulevat näkyviin:
- Nykyinen käyttöjärjestelmäversio
- Nykyinen käyttöjärjestelmäversio
- Nykyinen käyttöjärjestelmän versionumero
- Asennettu päivitys, joka vastaa kyseistä koontiversion numeroa, sekä KB-numero ja linkki tietosivulle
- Uusin saatavilla oleva päivitys käyttöjärjestelmäversiolle
Saadaksesi Windows 10 :n nykyiset korjaustiedostotiedot PowerShell -komentosarjan avulla, sinun on luotava ja suoritettava PowerShell-komentosarja(create and run the PowerShell script) käyttämällä alla olevaa Githubin koodia(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
Voit sulkea pois esikatselu-(Preview) tai kaistan(Out-of-band) ulkopuoliset päivitykset, jotka ovat uudempia kuin se, jonka olet asentanut, raportoimasta viimeisimpänä saatavilla olevana päivityksenä, joten voit keskittyä vain kumulatiivisiin päivityksiin suorittamalla alla olevan komennon:
Get-CurrentPatchInfo -ExcludePreview -ExcludeOutofBand
Voit myös luetteloida kaikki Windows - päivitykset, jotka Microsoft on julkaissut käyttöjärjestelmäversiollesi seuraavalla komennolla:
Get-CurrentPatchInfo -ListAvailable
Jos haluat sulkea pois esikatselun(Preview) ja kaistan(Out-of-band) ulkopuoliset päivitykset luettelosta, mutta luetella kaikki Windows - päivitykset, jotka Microsoft on julkaissut käyttöjärjestelmäversiollesi, suorita alla oleva komento:
Get-CurrentPatchInfo -ListAvailable -ExcludePreview -ExcludeOutofBand
Se siitä!
Lue seuraavaksi(Read next) : PowerShell Module Browser -sivuston(PowerShell Module Browser site) avulla voit etsiä cmdlettejä ja paketteja.
Related posts
Nollaa Windows Update Client PowerShell Scriptin avulla
Korjaa ongelmat -painike Windows Update -sivulla
Parhaat käytännöt Windows Updaten asennusaikojen parantamiseksi
Mistä löytää ja kuinka lukea Windows Update -loki Windows 11/10:ssä
Windows Update -virheen 0x80240061 korjaaminen
Korjaa Windows Update -virhe 0x8e5e03fa Windows 10:ssä
Windows Update -komponenttien palauttaminen Windows 11/10:ssä
Windows Updaten asentaminen epäonnistui, Virhe 0x80070643
Windows-päivitysten piilottaminen PowerShellin avulla Windows 11/10:ssä
Windows 10 Update Service Cadence selitetty
Windows Update- ja suojausasetukset Windows 10:ssä
Korjaa Windows Update -virhe 80072EFE
Virhe 0xc19001e1, Windows Updaten asennus epäonnistui
Windows tarjoaa tai asentaa jatkuvasti samaa päivitystä
Windows Updaten asentaminen epäonnistui virhekoodilla 0x8024200D
Windows Update ei lataudu tai asennu, Virhe 0x80070543
Mikä on Windows Update Medic Service (WaaSMedicSVC.exe)?
Korjataan Windows Update Error C8000266?
Korjaa Windows Update -palvelua ei voitu pysäyttää
Korjaa Windows Update -virhe 0x80070541 Windows 10:ssä