आमतौर पर, जो उपयोगकर्ता यह पता लगाना चाहते हैं कि उनके विंडोज 10 सिस्टम पर नवीनतम संचयी अपडेट स्थापित है या नहीं, इस पद्धति का उपयोग विंडोज 10 अपडेट इतिहास की जांच के लिए करते हैं। इस पोस्ट में, हम आपको दिखाएंगे कि एक पावरशेल स्क्रिप्ट का उपयोग करके विंडोज 10 के लिए वर्तमान पैच जानकारी कैसे प्राप्त करें।
Windows Update स्थिति जांचने के लिए PowerShell स्क्रिप्ट
पावरशेल स्क्रिप्ट का उपयोग यह रिपोर्ट करने के लिए किया जा सकता है कि वर्तमान में कौन सा ओएस विंडोज 10 कंप्यूटर बनाता है और साथ ही कौन सा अपडेट डिवाइस के लिए उपलब्ध नवीनतम अपडेट है। यह विंडोज 10 के उस संस्करण के लिए प्रकाशित सभी विंडोज अपडेट पर भी रिपोर्ट कर सकता है जो वर्तमान में वर्कस्टेशन चालू है।
जब आप स्क्रिप्ट चलाते हैं, तो निम्न जानकारी प्रदर्शित होगी:
- वर्तमान ओएस संस्करण
- वर्तमान OS संस्करण
- वर्तमान OS बिल्ड नंबर
- इंस्टॉल किया गया अपडेट जो उस बिल्ड नंबर से मेल खाता है, साथ ही KB नंबर और जानकारी पेज का लिंक
- OS संस्करण के लिए नवीनतम उपलब्ध अपडेट
PowerShell स्क्रिप्ट का उपयोग करके Windows 10 की वर्तमान पैच जानकारी प्राप्त करने के लिए, आपको Github से नीचे दिए गए कोड का उपयोग करके PowerShell स्क्रिप्ट बनाने और चलाने की आवश्यकता है।
[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
आप उपलब्ध पूर्वावलोकन या आउट-ऑफ-बैंड अपडेट को बाहर कर सकते हैं जो आपके द्वारा इंस्टॉल किए गए अपडेट की तुलना में नवीनतम उपलब्ध अपडेट के रूप में रिपोर्ट किए जाने से अधिक हाल के हैं, इसलिए आप नीचे दिए गए कमांड को चलाकर केवल संचयी अपडेट पर ध्यान केंद्रित कर सकते हैं:
Get-CurrentPatchInfo -ExcludePreview -ExcludeOutofBand
आप उन सभी विंडोज अपडेट को भी सूचीबद्ध कर सकते हैं जिन्हें माइक्रोसॉफ्ट ने आपके ओएस संस्करण के लिए निम्नलिखित कमांड के साथ प्रकाशित किया है:
Get-CurrentPatchInfo -ListAvailable
यदि आप पूर्वावलोकन और आउट-ऑफ-बैंड अपडेट को सूची से बाहर करना चाहते हैं, लेकिन उन सभी विंडोज अपडेट को सूचीबद्ध करें जिन्हें Microsoft ने आपके OS संस्करण के लिए प्रकाशित किया है, तो नीचे दिए गए कमांड को चलाएँ:
Get-CurrentPatchInfo -ListAvailable -ExcludePreview -ExcludeOutofBand
बस!
आगे पढ़ें :पावरशेल मॉड्यूल ब्राउज़र साइट आपको cmdlets और पैकेज खोजने की सुविधा देती है।