PowerShell skripta za provjeru statusa Windows Update
Korisnici koji žele saznati je li najnovije kumulativno ažuriranje instalirano na njihov sustav Windows 10 obično koriste ovu metodu za provjeru povijesti ažuriranja sustava Windows 10 . U ovom postu ćemo vam pokazati kako dobiti trenutne informacije o zakrpama za Windows 10 pomoću PowerShell skripte.(how to get current patch information for Windows 10 using a PowerShell script.)
PowerShell skripta za provjeru statusa Windows Update
PowerShell skripta može se koristiti za izvješćivanje o tome na kojoj se verziji OS-a trenutno nalazi računalo sa sustavom Windows 10(Windows 10) , kao i koje je ažuriranje najnovije ažuriranje dostupno za uređaj. Također može izvijestiti o svim ažuriranjima sustava Windows(Windows) objavljenim za verziju sustava Windows 10 na kojoj je trenutno uključena radna stanica.
Kada pokrenete skriptu, prikazat će se sljedeće informacije:
- Trenutna verzija OS-a
- Trenutno izdanje OS-a
- Broj trenutne verzije OS-a
- Instalirano ažuriranje koje odgovara tom broju verzije, kao i KB broj i poveznica na stranicu s informacijama
- Najnovije dostupno ažuriranje za verziju OS-a
Da biste dobili informacije o trenutačnim zakrpama za Windows 10 pomoću (Windows 10)PowerShell skripte, trebate stvoriti i pokrenuti PowerShell skriptu(create and run the PowerShell script) pomoću koda u nastavku s Githuba(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
Možete isključiti dostupna ažuriranja za pregled(Preview) ili izvan pojasa(Out-of-band) koja su novija od onog koje ste instalirali iz izvješća kao najnovije dostupno ažuriranje, tako da se možete samo usredotočiti na kumulativna ažuriranja pokretanjem naredbe u nastavku:
Get-CurrentPatchInfo -ExcludePreview -ExcludeOutofBand
Također možete navesti sva ažuriranja sustava Windows koja je (Windows)Microsoft objavio za vašu verziju OS-a sljedećom naredbom:
Get-CurrentPatchInfo -ListAvailable
Ako s popisa želite isključiti ažuriranja za pregled(Preview) i ažuriranja izvan pojasa(Out-of-band) , ali navesti sva ažuriranja za Windows koja je (Windows)Microsoft objavio za vašu verziju OS-a, pokrenite naredbu u nastavku:
Get-CurrentPatchInfo -ListAvailable -ExcludePreview -ExcludeOutofBand
To je to!
Pročitajte sljedeće(Read next) : web- mjesto preglednika PowerShell modula(PowerShell Module Browser site) omogućuje vam pretraživanje cmdlet-a i paketa.
Related posts
Poništite Windows Update Client pomoću PowerShell skripte
Gumb za rješavanje problema na stranici Windows Update
Najbolji primjeri iz prakse za poboljšanje vremena instalacije Windows Update
Gdje pronaći i kako pročitati dnevnik Windows Update u sustavu Windows 11/10
Kako popraviti pogrešku Windows Update 0x80240061
Ispravite pogrešku Windows Update 0x80070659
Windows Update i sigurnosne postavke u sustavu Windows 10
Popravi pogrešku 0x80072efe na Windows 10 Update Assistant
Win Update Stop: Onemogućite ažuriranja sustava Windows u sustavu Windows 10
Kako popraviti šifru pogreške Windows Update 80244010
Kako popraviti pogrešku Windows Update 0xca020007
Popravite pogrešku Windows Update 80072EFE
Windows Update i Shutdown/Restart ne rade i neće nestati
Popravite pogrešku Windows Update 0x80070005
Windows nastavlja nuditi ili instalirati isto ažuriranje
Ispravite pogrešku 0x80071a2d Windows Update
Kako sakriti ažuriranja sustava Windows pomoću PowerShell-a u sustavu Windows 11/10
Windows Update nije uspio instalirati s kodom pogreške 0x8024004a
Pogreške Windows Update 0x800705b4, 0x8024402f ili 0x8024002e [Popravljeno]
Ispravite pogrešku Windows Update 0x80070541 u sustavu Windows 10