Skrip PowerShell untuk memeriksa status Pembaruan Windows
Biasanya, pengguna yang ingin mengetahui apakah pembaruan kumulatif terbaru diinstal pada sistem Windows 10 mereka menggunakan metode ini untuk memeriksa Riwayat Pembaruan Windows 10 . Dalam posting ini, kami akan menunjukkan kepada Anda cara mendapatkan informasi tambalan saat ini untuk Windows 10 menggunakan skrip PowerShell.(how to get current patch information for Windows 10 using a PowerShell script.)
Skrip PowerShell(PowerShell) untuk memeriksa status Pembaruan Windows(Windows Update)
Skrip PowerShell dapat digunakan untuk melaporkan OS mana yang membangun komputer Windows 10 saat ini serta pembaruan mana yang merupakan pembaruan terbaru yang tersedia untuk perangkat. Itu juga dapat melaporkan semua pembaruan Windows yang diterbitkan untuk versi Windows 10 tempat workstation aktif saat ini.
Saat Anda menjalankan skrip, informasi berikut akan ditampilkan:
- Versi OS saat ini
- Edisi OS saat ini
- Nomor Build OS saat ini
- Pembaruan terinstal yang sesuai dengan nomor build itu, serta nomor KB dan tautan ke halaman info
- Pembaruan terbaru yang tersedia untuk versi OS
Untuk mendapatkan informasi patch Windows 10 saat ini menggunakan skrip (Windows 10)PowerShell , Anda perlu membuat dan menjalankan skrip PowerShell(create and run the PowerShell script) menggunakan kode di bawah ini dari 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
Anda dapat mengecualikan pembaruan Pratinjau(Preview) atau Out-of-band yang tersedia yang lebih baru daripada yang telah Anda instal agar tidak dilaporkan sebagai pembaruan terbaru yang tersedia, jadi Anda bisa fokus pada pembaruan kumulatif dengan menjalankan perintah di bawah ini:
Get-CurrentPatchInfo -ExcludePreview -ExcludeOutofBand
Anda juga dapat membuat daftar semua pembaruan Windows yang telah diterbitkan (Windows)Microsoft untuk versi OS Anda dengan perintah berikut:
Get-CurrentPatchInfo -ListAvailable
Jika Anda ingin mengecualikan pembaruan Pratinjau(Preview) dan Out-of-band dari daftar tetapi mencantumkan semua pembaruan Windows yang telah diterbitkan (Windows)Microsoft untuk versi OS Anda, jalankan perintah di bawah ini:
Get-CurrentPatchInfo -ListAvailable -ExcludePreview -ExcludeOutofBand
Itu dia!
Baca selanjutnya(Read next) : Situs Browser Modul PowerShell(PowerShell Module Browser site) memungkinkan Anda mencari cmdlet & paket.
Related posts
Reset Windows Update Client menggunakan PowerShell Script
Tombol masalah Fix pada Windows Update page
Praktik terbaik untuk meningkatkan Windows Update installation kali
Di mana menemukan dan cara membaca Windows Update log di Windows 11/10
Cara Memperbaiki Windows Update error 0x80240061
Cara Sembunyikan Windows Updates menggunakan PowerShell di Windows 10
Cara mematikan Windows Update otomatis di Windows 10
Windows Update tidak mengunduh atau diinstal, Error 0x80070543
Fix Windows 10 Update Error 0x800703F1
Cara Memperbaiki Windows Update Error Code 0x80070012
Jendela Update Client gagal mendeteksi dengan error 0x8024001f
Cara menyebarkan pembaruan menggunakan Windows Update untuk Business
Perbaiki Windows Update service tidak dapat dihentikan
Block Unsupported Hardware Popup di Windows Update
Fix Windows Update Error 0x800f0989 pada Windows 11/10
Windows Update Kesalahan 0x800705B4, 0x8024402F, 0x80070422 [Fixed}
Fix Windows Update error 0x80070541 pada Windows 10
Fix Windows Update Error C8000266?
Cara Jeda Windows Update di Windows 10 hingga 365 hari
Windows 10 Update Servicing Cadence menjelaskan