PowerShell-Skript zum Überprüfen des Windows Update-Status
Normalerweise verwenden Benutzer, die herausfinden möchten, ob das neueste kumulative Update auf ihrem Windows 10-System installiert ist, diese Methode, um den Windows 10-Update-Verlauf zu überprüfen . In diesem Beitrag zeigen wir Ihnen, wie Sie mithilfe eines PowerShell-Skripts aktuelle Patch-Informationen für Windows 10 erhalten.(how to get current patch information for Windows 10 using a PowerShell script.)
PowerShell- Skript zum Überprüfen des Windows Update- Status
Das PowerShell - Skript kann verwendet werden, um zu melden, auf welchem Betriebssystem sich ein Windows 10 -Computer derzeit befindet und welches Update das neueste für das Gerät verfügbare Update ist. Es kann auch über alle Windows -Updates berichten, die für die Version von Windows 10 veröffentlicht wurden, auf der sich eine Arbeitsstation derzeit befindet.
Wenn Sie das Skript ausführen, werden die folgenden Informationen angezeigt:
- Aktuelle OS-Version
- Aktuelle OS-Edition
- Aktuelle Betriebssystem-Build-Nummer
- Das installierte Update, das dieser Build-Nummer entspricht, sowie die KB-Nummer und einen Link zur Infoseite
- Das neueste verfügbare Update für die Betriebssystemversion
Um aktuelle Patchinformationen für Windows 10 mithilfe des (Windows 10)PowerShell - Skripts abzurufen, müssen Sie das PowerShell-Skript mithilfe des folgenden Codes von Github erstellen und ausführen(create and run the PowerShell script) .
[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
Sie können verfügbare Vorschau-(Preview) oder Out-of-Band- Updates ausschließen, die neuer sind als das von Ihnen installierte, um als neuestes verfügbares Update gemeldet zu werden, sodass Sie sich einfach auf die kumulativen Updates konzentrieren können, indem Sie den folgenden Befehl ausführen:
Get-CurrentPatchInfo -ExcludePreview -ExcludeOutofBand
Mit dem folgenden Befehl können Sie auch alle Windows -Updates auflisten, die Microsoft für Ihre Betriebssystemversion veröffentlicht hat:
Get-CurrentPatchInfo -ListAvailable
Wenn Sie Vorschau-(Preview) und Out-of-Band- Updates aus der Liste ausschließen, aber alle Windows - Updates auflisten möchten, die Microsoft für Ihre Betriebssystemversion veröffentlicht hat, führen Sie den folgenden Befehl aus:
Get-CurrentPatchInfo -ListAvailable -ExcludePreview -ExcludeOutofBand
Das ist es!
Weiterlesen(Read next) : Auf der PowerShell Module Browser-Site können Sie nach Cmdlets und Paketen suchen.
Related posts
Setzen Sie den Windows Update-Client mithilfe des PowerShell-Skripts zurück
Schaltfläche Probleme beheben auf der Windows Update-Seite
Best Practices zur Verbesserung der Installationszeiten von Windows Update
Wo finden und lesen Sie das Windows Update-Protokoll in Windows 11/10
So beheben Sie den Windows Update-Fehler 0x80240061
Beheben Sie den Windows Update-Fehler 0x80070005
Blockieren Sie nicht unterstützte Hardware-Popups in Windows Update
Neue Funktionen in Windows 10 Version 20H2 Oktober 2020 Update
Windows bietet immer wieder dasselbe Update an oder installiert es
Fehler 0xc19001e1, Windows Update konnte nicht installiert werden
Beheben Sie den Windows Update-Fehler 0x8e5e03fa unter Windows 10
So verbergen Sie Windows-Updates mit PowerShell in Windows 11/10
Fehler 0x8007042c für Windows Update oder Firewall beheben
Beheben Sie den Windows Update-Fehler 0x80070659
Windows Update-Fehler C8000266 beheben?
Windows 10 Update Servicing Cadence erklärt
Beheben Sie den Windows 10-Aktualisierungsfehler 0x800703F1
Windows Update-Fehler 0x800705b4, 0x8024402f oder 0x8024002e [behoben]
So beheben Sie den Windows Update-Fehlercode 0x80070012
Der Windows Update-Client konnte mit Fehler 0x8024001f nicht erkannt werden