Tập lệnh PowerShell để kiểm tra trạng thái Windows Update
Thông thường, người dùng muốn tìm hiểu xem liệu bản cập nhật tích lũy mới nhất có được cài đặt trên hệ thống Windows 10 của họ hay không sử dụng phương pháp này để kiểm tra Lịch sử cập nhật Windows 10 . Trong bài đăng này, chúng tôi sẽ hướng dẫn bạn cách lấy thông tin bản vá hiện tại cho Windows 10 bằng cách sử dụng tập lệnh PowerShell.(how to get current patch information for Windows 10 using a PowerShell script.)
Tập lệnh PowerShell(PowerShell) để kiểm tra trạng thái Windows Update
Tập lệnh PowerShell(PowerShell) có thể được sử dụng để báo cáo phiên bản hệ điều hành nào trên máy tính Windows 10 hiện đang sử dụng cũng như bản cập nhật nào là bản cập nhật mới nhất có sẵn cho thiết bị. Nó cũng có thể báo cáo về tất cả các bản cập nhật Windows được xuất bản cho phiên bản Windows 10 mà một máy trạm hiện đang sử dụng.
Khi bạn chạy tập lệnh, thông tin sau sẽ được hiển thị:
- Phiên bản hệ điều hành hiện tại
- Phiên bản hệ điều hành hiện tại
- Số bản dựng hệ điều hành hiện tại
- Bản cập nhật đã cài đặt tương ứng với số bản dựng đó, cũng như số KB và liên kết đến trang thông tin
- Bản cập nhật mới nhất hiện có cho phiên bản hệ điều hành
Để nhận thông tin bản vá hiện tại của Windows 10 bằng cách sử dụng tập lệnh (Windows 10)PowerShell , bạn cần tạo và chạy tập lệnh PowerShell(create and run the PowerShell script) bằng mã bên dưới từ 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
Bạn có thể loại trừ các bản cập nhật Xem trước(Preview) hoặc Ngoài băng tần(Out-of-band) có sẵn mới hơn bản bạn đã cài đặt khỏi bị báo cáo là bản cập nhật mới nhất hiện có, vì vậy bạn có thể chỉ cần tập trung vào các bản cập nhật tích lũy bằng cách chạy lệnh bên dưới:
Get-CurrentPatchInfo -ExcludePreview -ExcludeOutofBand
Bạn cũng có thể liệt kê tất cả các bản cập nhật Windows mà (Windows)Microsoft đã xuất bản cho phiên bản hệ điều hành của bạn bằng lệnh sau:
Get-CurrentPatchInfo -ListAvailable
Nếu bạn muốn loại trừ các bản cập nhật Xem trước(Preview) và Ngoài băng tần(Out-of-band) khỏi danh sách nhưng liệt kê tất cả các bản cập nhật Windows mà (Windows)Microsoft đã xuất bản cho phiên bản hệ điều hành của bạn, hãy chạy lệnh bên dưới:
Get-CurrentPatchInfo -ListAvailable -ExcludePreview -ExcludeOutofBand
Đó là nó!
Đọc tiếp theo(Read next) : Trang web Trình duyệt mô-đun PowerShell(PowerShell Module Browser site) cho phép bạn tìm kiếm lệnh ghép ngắn & gói.
Related posts
Reset Windows Update Client sử dụng PowerShell Script
Nút Vấn đề Fix trên Windows Update page
Thực hành tốt nhất để cải thiện Windows Update installation lần
Nơi để tìm thấy và như thế nào để đọc Windows Update log trong Windows 11/10
Làm thế nào để sửa chữa Windows Update error 0x80240061
Windows Update Không thể cài đặt với Error Code 0x8024004a
Cửa sổ Update Medic Service (WaaSMedicSVC.exe) trong Windows 10
Làm thế nào để thiết lập lại Windows Update thành phần trong Windows 11/10
Cửa sổ Update Client thất bại trong việc phát hiện với error 0x8024001f
Cách ẩn Windows Updates bằng PowerShell trong Windows 10
Win Update Stop: Vô hiệu hóa Windows Updates trên Windows 10
Cách triển khai các bản cập nhật bằng Windows Update cho Business
Windows 10 giữ cung cấp hoặc cài đặt cùng Update
Fix 0x80071a2d Windows Update error
Fix Windows Update Error 0x800f0989 trên Windows 11/10
Cách tạm dừng Windows Update bằng Windows 10 lên tới 365 ngày
Cách khắc phục Windows Update error 0xca020007
Cách tắt Windows Update tự động trong Windows 10
Fix Windows 10 Update Error 0x800703F1
Windows Update Không thể cài đặt hoặc sẽ không tải xuống trong Windows 11/10