PowerShell-szkript a Windows Update állapotának ellenőrzéséhez
Általában azok a felhasználók, akik szeretnék megtudni, hogy a legújabb összesített frissítés telepítve van-e a Windows 10 rendszerükön, általában ezt a módszert használják a Windows 10 frissítési előzményeinek ellenőrzésére . Ebben a bejegyzésben megmutatjuk, hogyan szerezheti meg a Windows 10 aktuális javítási adatait PowerShell-szkript segítségével.(how to get current patch information for Windows 10 using a PowerShell script.)
PowerShell -szkript a Windows Update állapotának ellenőrzéséhez
A PowerShell -parancsfájl segítségével jelentheti, hogy egy Windows 10 -es számítógép melyik operációs rendszeren fut jelenleg, valamint hogy melyik frissítés az eszközhöz elérhető legújabb frissítés. Ezenkívül jelentést tud készíteni a Windows 10 azon verziójához közzétett összes Windows -frissítésről, amelyen a munkaállomás jelenleg fut.
A szkript futtatásakor a következő információk jelennek meg:
- Az operációs rendszer jelenlegi verziója
- Jelenlegi operációs rendszer kiadás
- Az operációs rendszer jelenlegi verziószáma
- Az adott buildszámnak megfelelő telepített frissítés, valamint a KB szám és az információs oldalra mutató hivatkozás
- A legújabb elérhető frissítés az operációs rendszer verziójához
A Windows 10 aktuális javítási információinak a PowerShell -szkript segítségével történő lekéréséhez létre kell hoznia és futtassa a PowerShell-szkriptet(create and run the PowerShell script) a Github alábbi kódjával(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
Kizárhatja a telepítettnél újabb elérhető előnézeti(Preview) vagy sávon(Out-of-band) kívüli frissítéseket a legfrissebb elérhető frissítésként való jelentésből, így az alábbi parancs futtatásával csak az összesített frissítésekre koncentrálhat:
Get-CurrentPatchInfo -ExcludePreview -ExcludeOutofBand
A következő paranccsal listázhatja az összes Windows - frissítést, amelyet a Microsoft az Ön operációs rendszer verziójához tett közzé:
Get-CurrentPatchInfo -ListAvailable
Ha ki szeretné zárni az előnézeti(Preview) és a sávon kívüli(Out-of-band) frissítéseket a listáról, de felsorolja az összes Windows - frissítést, amelyet a Microsoft adott ki az Ön operációs rendszerének verziójához, futtassa az alábbi parancsot:
Get-CurrentPatchInfo -ListAvailable -ExcludePreview -ExcludeOutofBand
Ez az!
Olvassa el a következőt(Read next) : A PowerShell Module Browser webhely(PowerShell Module Browser site) lehetővé teszi parancsmagok és csomagok keresését.
Related posts
Állítsa vissza a Windows Update klienst a PowerShell Script segítségével
Problémamegoldás gomb a Windows Update oldalon
Bevált módszerek a Windows Update telepítési idejének javítására
Hol található és hogyan olvasható a Windows Update naplója a Windows 11/10 rendszerben
A Windows Update 0x80240061 számú hibájának javítása
Windows Update 0x800B0101 hiba, a telepítő hibát észlelt
A 0x8024200D hibakóddal rendelkező Windows Update telepítése sikertelen
A 0x80070012 számú Windows Update hibakód javítása
Más Microsoft-termékek frissítése a Windows Update segítségével
Frissítések telepítése a Windows Update for Business használatával
Mi az a Windows Update Medic Service (WaaSMedicSVC.exe)?
A Windows Update és a Leállítás/Újraindítás nem működik, és nem múlik el
A Windows 10 Update Service Cadence magyarázata
Windows Update 0x800F081F hiba a Windows 11/10 rendszerben
A 0xca020007 számú Windows frissítési hiba javítása
Javítsa ki a 0x8007042c hibát a Windows Update vagy a tűzfal esetében
A nem támogatott hardver előugró ablak blokkolása a Windows Update szolgáltatásban
Javítsa ki a 80072EFE számú Windows Update hibát
Javítsa ki a 0x80070005 számú Windows Update hibát
A Windows frissítési és biztonsági beállításai a Windows 10 rendszerben