Nachfolgend finden Sie die Anleitung, die ich bei der Fehlerbehebung einer fehlerhaften WSUS-Installation verwende. Dies kann sich in Form eines Fehlers in der Serverkonsole, des allseits beliebten „es meldet sich einfach nicht“ oder über das Ereignisprotokoll äußern. Ich führe Sie durch die Komponenten von WSUS und zeige Ihnen, wie Sie überprüfen und sicherstellen können, dass jede einzelne Komponente ordnungsgemäß funktioniert.
Zunächst ein Hinweis darauf, was auf Ihrer Plattform verfügbar ist.
Wenn Sie Windows 7/8/Server 2008R2/2012R2 verwenden, funktioniert wuauclt
für Sie.
Der einzige wirkliche Befehl, den Sie kennen müssen, ist wuauclt /resetauthorization /detectnow
.wauauclt /reportnow
Tut nicht das, was Sie denken, und ist nicht sehr nützlich.
Wenn Sie auf Windows 10/Server 2016 sind, dann wurde wuauclt deprifiziert und Sie haben UsoClient
.usoclient.exe startscan
, um fehlende Patches zu erkennenusoclient.exe refreshsettings
, um die Einstellungen zu aktualisieren, wenn irgendwelche Änderungen vorgenommen wurdenusoclient.exe startdownload
, um Patches herunterzuladenusoclient.exe startinstall
, um Patches zu installieren
Sie haben auch die Möglichkeit, Powershell zu verwenden, um eine Scan-Anforderung zu initiieren.
(New-Object -ComObject Microsoft.Update.AutoUpdate).DetectNow()
Apropos Powershell: Microsoft stellt eine Reihe von Cmdlets für die Verwaltung von WSUS Server zur Verfügung. um zu sehen, ob diese für Sie verfügbar sind, führen Sie
Get-Command -Module UpdateServices
Diese Cmdlets sind in erster Linie auf die Bereitstellung und Verwaltung des Servers, der Patches und der Computer ausgerichtet, nicht auf die Fehlerbehebung.
Auf dem Client gibt es ein WindowsUpdate-Modul, aber seine einzige Funktion ist Get-WindowsUpdateLog, das für die Erstellung einer lesbaren WindowsUpdate.log-Datei in Windows 10 verwendet wird.
Es gibt ein PS-Modul eines Drittanbieters für die Verwaltung von Windows Update auf dem Client.
Install-Module PSWindowsUpdate Import-Module PSWindowsUpdate Add-WUServiceManager -ServiceID 7971f918-a847-4430-9279-4a52d1efe18d Get-Command -Module PSWindowsUpdate Get-WUList –MicrosoftUpdate Get-WUInstall –MicrosoftUpdate –AcceptAll –AutoReboot
Datenbank
WSUS hat die Möglichkeit, eine interne WID (Windows Internal DB) oder SQL-Datenbank zu verwenden. Ich gehe davon aus, dass er mit der WID unter dem Standardpfad C:\Windows\WID\
installiert ist.
Datenbankbezogene Fehler (außer Fragmentierung) treten normalerweise zum Zeitpunkt der Installation auf, oft während der Aufgabenfolge nach der Installation.
Es ist zwar möglich, eine Verbindung zum WID herzustellen und die SUSDB zu löschen, aber Fehler in diesem Stadium lassen sich in der Regel am besten durch eine vollständige Deinstallation und Neuinstallation beheben.
Zu Referenzzwecken gebe ich an, dass Sie entweder SQLCMD oder SQL Mgmt Studio verwenden können, um sich mit der DB zu verbinden.
Die Verbindungszeichenfolge lautet np:\.\pipe\MICROSOFT##WID\tsql\query
select name from sys.sysdatabasesdrop table susdbselect name from sys.sysdatabases
Deinstallation
Deinstallation mithilfe des Server Managers.
Stellen Sie sicher, dass der WSUS-Inhaltsordner sowie die IIS WSUS-Verwaltungssite entfernt sind.
Die Deinstallation von WSUS entfernt nicht immer das WID. Entfernen Sie es in Powershell mit Uninstall-WindowsFeature -Name windows-internal-database
Neustarten und c:\windows\WID\SUSDB.mdf
und SUSDB_log.ldf
Dateien löschen.
Installation
Zusammen mit der Auswahl der WSUS-Rolle installiert Windows ASP.NET 4.6, RSAT Tools, IIS und den Windows-Prozessaktivierungsdienst.
Installieren Sie von einer administrativen Powershell-Eingabeaufforderung aus
Install-WindowsFeature -Name Updateservices,UpdateServices-WidDB,UpdateServices-services -IncludeManagementTools
Führen Sie anschließend, bevor Sie die GUI starten, Folgendes aus:
Überprüfen Sie den Client
Es gibt eine ganze Reihe von möglichen Ursachen dafür, dass ein Client keine Updates erhält. Ich gehe eine Reihe von Schritten zur Fehlerbehebung durch und gebe am Ende zwei Skripte an, um den Client „zurückzusetzen“, wenn nichts anderes funktioniert.
Prüfen Sie den freien Festplattenspeicher.
Prüfen Sie das Windowsupdate-Protokoll.
Öffnen Sie unter Windows 10 eine administrative Powershell-Eingabeaufforderung und führen Sie Get-Windowsupdatelog
aus. Das Protokoll wird auf dem Desktop angezeigt. Warten Sie, bis der Befehl ausgeführt wurde.
Unter Windows 7 prüfen Sie C:\Windows\WindowsUpdate.log
Dies sollte anzeigen, ob das Problem auf dem Client basiert oder ein Problem bei der Kommunikation mit einem Remote-Endpunkt ist.
Der einfachste erste Schritt bei der Problembehandlung des Clients ist die Ausführung der Windows Update-Problembehandlung.
Rufen Sie unter Windows 10 die Microsoft iFixIt for WSUS-Website auf.
Dort werden Sie aufgefordert, die Windows Update-Problembehandlung (im cab-Dateiformat) herunterzuladen. Speichern Sie diese und führen Sie sie aus.
Wenn Sie auf dieser Seite Windows 7 auswählen, werden Sie aufgefordert, mit der rechten Maustaste auf „Netzwerk“ (in der Taskleiste) zu klicken und „Problembehandlung“ auszuwählen. Sie können diesen Schritt wahrscheinlich überspringen.
Bei Windows 10 versuchen Sie eine Online-Update-Prüfung.
Überprüfen Sie, ob der Dienst ausgeführt wird.Get-Service -Name wuauserv
Nächste Überprüfung und stellen Sie sicher, dass der Client WSUS-Einstellungen von der Gruppenrichtlinie empfängt.
Führen Sie gpresult /scope computer
aus, um zu sehen, ob Ihre Richtlinie für WSUS-Einstellungen auf den Computer angewendet wird.
Abfrage der Client-Registrierung nach WSUS-Einstellungen mit Get-ItemProperty HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate
Telnet kann verwendet werden, um Port-Konnektivitätsprobleme zu überprüfen. Wenn Sie versuchen, eine Telnet-Verbindung zu einem offenen und zugänglichen Port herzustellen, öffnet Telnet ein neues leeres Befehlsfenster. Wenn der Port nicht erreichbar ist, schlägt der Befehl einfach fehl. Versuchen Sie, eine Verbindung mit dem WSUS-Server und dem Port herzustellen. Wenn die Verbindung fehlschlägt, überprüfen Sie die Firewall-Einstellungen.telnet wsus.server.com 8530
Lassen Sie uns Powershell verwenden, um die Konnektivität zu testen.Test-NetConnection -ComputerName <WSUS_Server> -Port 8530 -InformationLevel Detailed
Vergessen Sie nicht den naheliegenden Schritt, das Ereignisprotokoll zu überprüfen.
Anwendungsereignisprotokoll sowie Anwendungs- und Dienstprotokolle > Microsoft > Windows > WindowsUpdateClient
Manchmal können Antivirenprogramme oder andere Sicherheitsagenten für Endpunkte die Netzwerkkommunikation stören. Erwägen Sie, diese zu Testzwecken zu deaktivieren oder zu deinstallieren.
Führen Sie sfc /scannow
von einer administrativen Eingabeaufforderung aus, um zu prüfen, ob Dateien beschädigt sind, die den Client beeinträchtigen können.
Wenn Sie sowohl funktionierende als auch nicht funktionierende Clients in WSUS haben, prüfen Sie c:\program files\update services\WebServices\ClientWebServices
auf eine web.config
-Datei und vergleichen Sie eine funktionierende Datei mit einer nicht funktionierenden Datei auf Unterschiede.
Wenn dieser Client von einem Betriebssystem-Image stammt und Sysprep nicht ausgeführt wurde, kann das Problem darin bestehen, dass mehrere Clients denselben SUSClientID-Schlüssel verwenden.
Prüfen Sie HKLM\Software\Microsoft\Windows\CurrentVersion\WIndowsUpdate
und löschen Sie die aktuelle SUSClientID
.
Führen Sie wuauclt /resetauthorization /detectnow
von einer erweiterten Eingabeaufforderung aus.
Die folgende Sequenz leert den lokalen Cache des Windows Update-Clients
Die folgende Sequenz registriert einen Computer erneut beim WSUS-Server:
Prüfen Sie den Server
Prüfen Sie den freien Festplattenspeicher für das Start- und Repository-Volume.
Prüfen Sie den Windows Update-DienstGet-Service -name WsusService
Prüfen Sie den IIS-DienstGet-Service -name W3SVC
Hört der Server zu? Überprüfen Sie die offenen Ports.netstat -an | findstr 853*
Können Sie zu
You should see a blue and tan Client Service info page.
If not, we can try resetting the port. Open an elevated command prompt and run wsusutil usecustomwebsite false
wechseln. Dadurch wird der von WSUS verwendete Port von 8530 auf 80 geändert, also stellen Sie sicher, dass nichts auf Port 80 läuft.
Führen Sie nun wsusutil usecustomwebsite true
gefolgt von iisreset /restart
aus. Dadurch wird der Port wieder auf 8530 geändert und die Konfiguration "zurückgesetzt".
Prüfen Sie die Firewall-Regeln.
Prüfen Sie die serverseitige Protokollierung: c:\program files\updateservices\logfiles\SoftwareDistribution
Ausführen von sfc /scannow
, um auf Dateibeschädigungen zu prüfen.
WSUSUtil.exe
-
wsusutil.exe reset
- Überprüft, ob für jede Update-Metadatenzeile in der Datenbank entsprechende Update-Dateien im Dateisystem gespeichert sind. Wenn Aktualisierungsdateien fehlen oder beschädigt wurden, lädt WSUS die Aktualisierungsdateien erneut herunter.
-
wsusutil.exe checkhealth
- Überprüfen Sie das Anwendungsereignisprotokoll auf Einträge mit der Quelle „Windows Server Update Services“
-
wsusutil.exe usecustomwebsite
- Ändert den von WSUS verwendeten Port. Außerdem wird der Port während der Änderung „zurückgesetzt“.
IIS
Prüfen Sie auf http-Verbindungsfehler in c:\windows\system32\logfiles\httperr\
Prüfen Sie die IP-Bindungen.
Prüfen Sie, ob der Anwendungspool läuft.
Prüfen Sie die IIS-Protokolle auf Verbindungsfehler c:\inetpub\logs\logfiles
Die standardmäßige IIS-Installation durch das WSUS-Installationsprogramm installiert jedoch keine Protokollierungskomponente.
Sie müssen diese unter Manage Computer > Roles > Web Server > Web Server > Health & Diag > HTTP Logging
aktivieren und schon haben Sie es. Wenn diese Anleitung das Problem nicht behoben hat, sind Sie hoffentlich zumindest auf die fehlerhafte Komponente gestoßen und wissen nun besser, worauf Sie Ihre Google-Suche konzentrieren müssen.