Windows Update durumunu kontrol etmek için PowerShell betiği
Genellikle, Windows 10 sistemlerinde en son toplu güncellemenin yüklü olup olmadığını öğrenmek isteyen kullanıcılar , Windows 10 Güncelleme Geçmişini kontrol etmek için bu yöntemi kullanır . Bu gönderide, bir PowerShell betiği kullanarak Windows 10 için güncel yama bilgilerini nasıl(how to get current patch information for Windows 10 using a PowerShell script.) alacağınızı göstereceğiz .
(PowerShell)Windows Update durumunu kontrol etmek için PowerShell betiği
PowerShell betiği, şu anda hangi işletim sisteminin bir Windows 10(Windows 10) bilgisayarı oluşturduğunu ve hangi güncellemenin cihaz için mevcut olan en son güncelleme olduğunu bildirmek için kullanılabilir. Ayrıca, bir iş istasyonunun şu anda üzerinde olduğu Windows 10 sürümü için yayınlanan tüm (Windows 10)Windows güncellemelerini de raporlayabilir .
Komut dosyasını çalıştırdığınızda, aşağıdaki bilgiler görüntülenecektir:
- Mevcut işletim sistemi sürümü
- Mevcut İşletim Sistemi Sürümü
- Mevcut İşletim Sistemi Yapı numarası
- Bu yapı numarasına karşılık gelen yüklü güncelleme, ayrıca KB numarası ve bilgi sayfasına bir bağlantı
- İşletim sistemi sürümü için mevcut en son güncelleme
PowerShell betiğini kullanarak Windows 10(Windows 10) güncel yama bilgilerini almak için , Github'dan(Github) aşağıdaki kodu kullanarak PowerShell betiğini oluşturup çalıştırmanız(create and run the PowerShell script) gerekir .
[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
Yüklemiş olduğunuzdan daha yeni olan Önizleme(Preview) veya Bant Dışı güncellemelerin mevcut en son güncelleme olarak rapor edilmesini engelleyebilirsiniz, böylece aşağıdaki komutu çalıştırarak yalnızca toplu güncellemelere odaklanabilirsiniz:(Out-of-band)
Get-CurrentPatchInfo -ExcludePreview -ExcludeOutofBand
Microsoft'un(Microsoft) işletim sistemi sürümünüz için yayınladığı tüm Windows güncellemelerini aşağıdaki komutla da listeleyebilirsiniz:
Get-CurrentPatchInfo -ListAvailable
Önizleme(Preview) ve Bant Dışı(Out-of-band) güncellemeleri listeden hariç tutmak , ancak Microsoft'un işletim sistemi sürümünüz için yayınladığı tüm (Microsoft)Windows güncellemelerini listelemek istiyorsanız aşağıdaki komutu çalıştırın:
Get-CurrentPatchInfo -ListAvailable -ExcludePreview -ExcludeOutofBand
Bu kadar!
PowerShell (Read next)Modül Tarayıcı sitesi(PowerShell Module Browser site) , cmdlet'leri ve paketleri aramanıza olanak tanır.
Related posts
Reset Windows Update Client PowerShell Script kullanarak
Fix Windows Update page'teki sorunlar düğmesi
En iyi uygulamalar Windows Update installation kez iyileştirmek için
Windows 11/10'te Windows Update log'ün nasıl bululur ve nasıl okunur
Windows Update error 0x80240061 Nasıl Düzeltilir
Windows 10'da Fix Windows Update error 0x80070541
Windows 10'da Fix Windows Update error 0x80240439
Fix Windows Update Error C8000266?
Windows Update Yüklenemedi - Error 0x80070643
Nasıl Fix Windows Update Error 0xc1900201
Windows Update Client error 0x8024001f ile tespit edilemedi
New içinde Windows 10 version 20H2 October 2020 Update özellikleri
Windows 10'da Otomatik Windows Update'yı nasıl kapatılır?
Windows 11/10'da Fix Windows Update Error 0x800f0989
Windows 10'da Windows Update error 0x800F081F
Windows 10'a Windows Update error 80072EFE
Windows Update'ü Nasıl Duraklatılır Windows 10'de 365 güne kadar
Windows 10 içinde PowerShell kullanarak Windows Updates Hide nasıl
Block Unsupported Hardware Popup Windows Update'da
Windows Update service Fix durdurulamadı