Zum Hauptinhalt springen

Fehlerbehebung bei Windows Update

Diagnose Windows Update issues in Level, including WUA result discrepancies and leftover WSUS configuration.

Einführung

Level verwendet die Microsoft Windows Update Agent (WUA) API, um Patches zu erkennen und zu verwalten. Wenn Sie unerwartete Patch-Anzahlen, fehlende Updates oder überhaupt keine Updates sehen, sind die zwei häufigsten Ursachen Unterschiede in den Ergebnismengen zwischen WUA und anderen Update-Quellen sowie verbleibende WSUS-Konfigurationen, die Geräte von den Update-Servern von Microsoft umleiten.


Wie Level Windows-Updates abfragt

Level fragt die Microsoft WUA API sowohl für verfügbare als auch für installierte Patches. Die WUA API ist dieselbe, die Windows intern verwendet, ihre Ergebnisse stimmen jedoch nicht mit dem Windows Update-Verlauf überein. Vergleichen Sie die beiden nicht direkt — sie greifen auf unterschiedliche Datenspeicher zu.

Um genau zu sehen, was die WUA API für ein bestimmtes Gerät zurückgibt, führen Sie diese Befehle in PowerShell aus.

Installierte Patches:

$Session = New-Object -ComObject Microsoft.Update.Session
$Searcher = $Session.CreateUpdateSearcher()
$Searcher.Search("IsInstalled=1").Updates | ft -a title

Ausstehende Patches:

$Session = New-Object -ComObject Microsoft.Update.Session
$Searcher = $Session.CreateUpdateSearcher() $Searcher.Search("IsInstalled=0").Updates | ft -a title

Wenn die Patch-Liste von Level mit dem übereinstimmt, was diese Befehle zurückgeben, funktioniert Level korrekt. Jede Abweichung liegt in der WUA-Schicht selbst.


Diagnose von WSUS-bezogenen Problemen

Wenn Level keine verfügbaren Updates anzeigt und auch die oben genannten WUA-Befehle nichts zurückgeben, ist eine verbleibende WSUS-Konfiguration die wahrscheinliche Ursache. Geräte, die noch auf einen WSUS-Server zeigen, fragen die Update-Server von Microsoft nicht ab, sodass Level nichts zu melden hat.

WSUS-Konfiguration prüfen

Führen Sie dies in PowerShell aus, um den Windows Update-Registrierungsschlüssel zu überprüfen:

Get-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate"

Wenn die Ausgabe Verweise auf eine WSUS-Serveradresse enthält, wurde das Gerät noch nicht neu konfiguriert.

WSUS-Einstellungen entfernen

Die korrekte Lösung besteht darin, das Gruppenrichtlinienobjekt (GPO) rückgängig zu machen, das WSUS ursprünglich auf die Geräte übertragen hat. Falls dies nicht möglich ist, entfernt das folgende Skript die WSUS-Client-Einstellungen manuell:

⚠️ WARNUNG: Testen Sie dies auf einem einzelnen Gerät, bevor Sie es in der Produktion einsetzen. Wenn das GPO, das WSUS konfiguriert hat, noch aktiv ist, werden die Einstellungen bei der nächsten Richtlinienaktualisierung zurückgesetzt. Das Entfernen des GPO ist die einzige dauerhafte Lösung.

PowerShell

# Stop the BITS and Windows Update services
Stop-Service -Name BITS, wuauserv -Force

# Remove WSUS client configuration properties
$wsusProperties = @("AccountDomainSid", "PingID", "SusClientId", "SusClientIDValidation")
foreach ($property in $wsusProperties) {
Remove-ItemProperty -Name $property -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\" -ErrorAction SilentlyContinue
}

# Remove the SoftwareDistribution folder
Remove-Item "$env:SystemRoot\SoftwareDistribution\" -Recurse -Force -ErrorAction SilentlyContinue

# Start the BITS and Windows Update services
Start-Service -Name BITS, wuauserv

# Optionally, reset the Windows Update client settings
# This step ensures that the client re-registers and checks for updates from the correct source
$wuaucltPath = "$env:SystemRoot\System32\wuauclt.exe"
if (Test-Path -Path $wuaucltPath) {
Start-Process -FilePath $wuaucltPath -ArgumentList "/resetauthorization /detectnow" -NoNewWindow
} else {
Write-Output "wuauclt.exe not found. Ensure the Windows Update client is available."
}

Nach der Ausführung fragt Level WUA beim nächsten Sync erneut ab. Updates von den Servern von Microsoft sollten zu diesem Zeitpunkt erscheinen.

💡 TIPP: Speichern Sie dies als Skript in der Skriptbibliothek von Level, um es per Automatisierung auf mehreren Geräten gleichzeitig bereitzustellen, anstatt es manuell auszuführen.


Häufig gestellte Fragen

  • Level zeigt Updates an, aber der Windows Update-Verlauf sagt, dass diese bereits installiert sind. Wer hat recht? Beide können korrekt sein. Level fragt die WUA API direkt ab; der Windows Update-Verlauf liest aus einem separaten Protokoll. Die oben genannten WUA PowerShell-Befehle sind die verlässliche Grundlage für das, was Level sieht. Wenn diese Befehle dieselben Patches zurückgeben, die Level anzeigt, verhält sich Level korrekt.

  • Das WSUS-Bereinigungsskript wurde ausgeführt, aber die Geräte zeigen immer noch auf WSUS. Die Gruppenrichtlinie, die WSUS konfiguriert hat, ist wahrscheinlich noch aktiv. Das Skript entfernt die aktuellen Registrierungswerte, aber die Richtlinie stellt diese bei der nächsten Aktualisierung wieder her. Deaktivieren oder entfernen Sie zuerst das GPO.

  • Wie lange dauert es nach dem Entfernen der WSUS-Konfiguration, bis Level Updates anzeigt? Level fragt WUA beim nächsten Eincheck-Zyklus des Geräts erneut ab. In den meisten Fällen erscheinen aktualisierte Patch-Daten innerhalb weniger Minuten, nachdem das Gerät wieder verbunden ist oder der Agent abfragt.

  • Kann ich das WSUS-Bereinigungsskript auf allen betroffenen Geräten gleichzeitig ausführen? Ja. Speichern Sie es als Skript in Automations → Scripts, und führen Sie es dann über eine Automatisierung aus, die auf die betreffenden Geräte abzielt, oder über einen Ad-hoc-Aufruf aus der Geräteliste.

Hat dies deine Frage beantwortet?