PowerShell скрипт за проверка на състоянието на Windows Update
Обикновено потребителите, които искат да разберат дали най-новата сборна актуализация е инсталирана на тяхната система Windows 10, използват този метод, за да проверят историята на актуализациите на Windows 10 . В тази публикация ще ви покажем как да получите текуща информация за корекция за Windows 10 с помощта на скрипт PowerShell.(how to get current patch information for Windows 10 using a PowerShell script.)
PowerShell скрипт за проверка на състоянието на Windows Update(Windows Update)
Скриптът PowerShell може да се използва за докладване на коя компилация на ОС е включена в момента компютър с Windows 10 , както и коя актуализация е най-новата актуализация, налична за устройството. Може също да докладва за всички актуализации на Windows , публикувани за версията на Windows 10 , на която работната станция е включена в момента.
Когато стартирате скрипта, ще се покаже следната информация:
- Текуща версия на ОС
- Текущо издание на ОС
- Номер на текущата версия на ОС
- Инсталираната актуализация, която съответства на този номер на компилация, както и номера на KB и връзка към информационната страница
- Последната налична актуализация за версията на ОС
За да получите информация за текущата корекция на Windows 10 с помощта на скрипт (Windows 10)PowerShell , трябва да създадете и стартирате скрипта PowerShell,(create and run the PowerShell script) като използвате кода по-долу от 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
Можете да изключите наличните актуализации за преглед(Preview) или извън лентата(Out-of-band) , които са по-скорошни от тази, която сте инсталирали, да не бъдат докладвани като последната налична актуализация, така че можете просто да се съсредоточите върху кумулативните актуализации, като изпълните командата по-долу:
Get-CurrentPatchInfo -ExcludePreview -ExcludeOutofBand
Можете също да изброите всички актуализации на Windows , които (Windows)Microsoft е публикувала за вашата версия на ОС със следната команда:
Get-CurrentPatchInfo -ListAvailable
Ако искате да изключите Preview и Out-of-band актуализации от списъка, но изброите всички актуализации на Windows , които (Windows)Microsoft е публикувала за вашата версия на ОС, изпълнете командата по-долу:
Get-CurrentPatchInfo -ListAvailable -ExcludePreview -ExcludeOutofBand
Това е!
Прочетете следващото(Read next) : Сайтът на PowerShell Module Browser(PowerShell Module Browser site) ви позволява да търсите командни команди и пакети.
Related posts
Нулирайте Windows Update Client с помощта на PowerShell Script
Fix issues button on the Windows Update page
Най-добри практики за подобряване на времето за инсталиране на Windows Update
Къде да намерите и как да прочетете регистрационния файл на Windows Update в Windows 11/10
Как да поправите грешка в Windows Update 0x80240061
Как да коригирате кода за грешка в Windows Update 0x80070012
Какво представлява услугата Windows Update Medic (WaaSMedicSVC.exe)?
Как да нулирате компонентите на Windows Update в Windows 11/10
Как да изключите автоматичната актуализация на Windows в Windows 11/10
Нови функции в Windows 10 версия 20H2 Актуализация от октомври 2020 г
Поправка Услугата Windows Update не може да бъде спряна
Поправете грешка 0x80071a2d Windows Update
Грешки при актуализиране на Windows 0x800705b4, 0x8024402f или 0x8024002e [Коригирано]
Как да поправите грешка в Windows Update 0xca020007
Windows Update и изключване/рестартиране не работят и няма да изчезнат
Windows Update не успя да се инсталира или няма да се изтегли в Windows 11/10
Обяснение на Cadence за обслужване на актуализация на Windows 10
Поправете грешка на Windows Update 0x80070005
Поправете грешка 0x8007042c за Windows Update или защитна стена
Windows Update спря изтеглянето на актуализации в Windows 11/10