Ein seit langem lästiges Problem sind die Verbindungsabbrüche wenn man den Serverberinigungsassistenten beim WSUS ausführt. Meist geschieht dies beim entfernen alter Updates.Für die Abbrüche kann es mehrere Ursachen, wie z.B. den Verbindungs-Timeout zur Datenbank oder langsame Hardware. Ersteres kann man relativ leicht ändern. Auf einem Windows Server 2016 mit WSUS 4.0 und WID (Windows Internal Database) hatte ich allerdings mit der grafischen Oberfläche des Management Studio (getestet mit Version 2012 und 2017) kein Glück, die Verbindungeinstellungen ändern zu können. Es erschien immer folgende Fehlermeldung beim Versuch auf die Eigenschaften zuzugreifen:
Oder als Text (damit die Suchmaschinen auch etwas davon haben):
TITEL: Microsoft SQL Server Management Studio ------------------------------ Das angeforderte Dialogfeld kann nicht angezeigt werden. ------------------------------ ZUSÄTZLICHE INFORMATIONEN: Das angeforderte Dialogfeld kann nicht angezeigt werden. (SqlMgmt) ------------------------------ Fehler beim Abrufen von Daten für diese Anforderung. (Microsoft.SqlServer.Management.Sdk.Sfc) Hilfe erhalten Sie durch Klicken auf: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&LinkId=20476 ------------------------------ Ausnahme beim Ausführen einer Transact-SQL-Anweisung oder eines Transact-SQL-Batches. (Microsoft.SqlServer.ConnectionInfo) ------------------------------ Für den aktuellen Befehl ist ein schwerwiegender Fehler aufgetreten. Löschen Sie eventuelle Ergebnisse. RegQueryValueEx() returned error 2, 'Das System kann die angegebene Datei nicht finden.' (Microsoft SQL Server, Fehler: 0) Hilfe erhalten Sie durch Klicken auf: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&ProdVer=12.00.2000&EvtSrc=MSSQLServer&EvtID=0&LinkId=20476 ------------------------------ SCHALTFLÄCHEN: OK ------------------------------
Die Links zu Microsoft führen allerdings ins “nirgendwo”, außer zu Surface-Werbung.
Den Timeout kann man alternativ über folgenden Weg ändern:
Eine Eingabeaufforderung öffnen:
osql -E -S \\.\pipe\Microsoft##WID\tsql\query exec sp_configure 'show advanced option', '1'; reconfigure; exec sp_configure; <- Zeigt die Eintellungen an, sobald das nachfolgende go abgesetzt wird. Am besten diese zur Sicherheit Kopieren. go exec sp_configure 'remote query timeout (s)', 0; reconfigure with override; go quit
Den Dienst “Interne Windows-Datenbank” (Dienstname: “MSSQL$MICROSOFT##WID”) neu starten, um die Änderung zu übernehmen. Statt “osql” funktioniert auch “sqlcmd”.
Mit etwas Glück läuft der Assistent nun durch. Leider war mir das Glück nicht hold, nach etwas über 1.5 Stunde kam es erneut zum Abbruch. Wiederholte Ausführungsversuche halfen auch nicht wirklich weiter, dem Hörensagen nach, soll aber immer ein Fortschritt stattfinden.
Plan B
Es gibt einige Skripte zum Automatisieren der WSUS-Bereinigung. Ein recht umfangreiches Exemplar kommt dabei von Adam Marshall:
Adam Consulting – WSUS Automatic Maintenance
spiceworks – WSUS Automated Maintenance (Formerly Adamj Clean-WSUS)
Das Skript ist gut dokumentiert, es können bzw. müssen nur wenige Variablen den eigenen Bedürfnissen angepasst werden und automatisierbar samt E-Mail-Benachrichtigung ist es obendrein auch noch. Aber das ist nicht alles: So lässt sich z.B. auch das Speicherlimit des Anwendungspools ändern, dieses Thema hatten wir ja neulich erst:
Windows Server 2016: WSUS-„Schluckauf“ nach März 2018-Updates
Im Vergleich zum Assistenten war es in diesem Fall-Beispiel nicht nur erfolgreich, sondern auch rasend schnell. Nach 1.5 Minuten waren 5980 Updates entfernt und damit ca. 78 GB zusätzlich an Speicherplatz frei. Und das war nur der “First-Run”. Weitere Durchläufe kann man mit gewünschten Parametern durchführen.
Update 11.05.2018
Wer die Bereinigung ohne Fremdskripte mittels Powershell durchführen möchte, sollte sich diesen Beitrag von Wolfgang Sommergut ansehen:
WindowsPro – WSUS-Server bereinigen mittels GUI-Assistenten oder PowerShell
Update 24.07.2019
WAM (WSUS Automatic Maintenance, Adamj bzw. AJ Tek) ist mittlerweile kostenpflichtig. Weitere Alternativen und Möglichkeiten gibt es wie diese hier zeigen:
Automated WSUS Maintenance Utility von Mike Galvin
Eine aktuelle Quelle für dieses Skript ist:
https://github.com/DeploymentBunny/Files/blob/master/Tools/Invoke-WSUSMaint/WsusDBMaintenance.sql
WSUS automated cleanup script von Gleb F.NG
Re-Index der Datenbank durchführen:
Re-index the WSUS Database von The Scripting Guys
Auf einem Windows Server 2012 hat folgender Befehl funktioniert:
sqlcmd -S np:\\.\pipe\MICROSOFT##WID\tsql\query -i C:\temp\WsusDBMaintenance.sql
Weiteres zum Thema WSUS-Datenbank aufräumen und optimieren:
Und nochmal via PowerShell:
chilltimes.de – Windows Server 2012 – WSUS Server Cleanup
Arbeitsspeichernutzung der WID konfigurieren:
Windows: Die Arbeitsspeichernutzung der Windows Internal Database (WID) konfigurieren
Die Skripte aus diesem Update haben dabei geholfen, auf einem seit langem nicht mehr gepflegten/gewartetem WSUS auf einem untermotorisiertem Windows Server 2012 wieder einen lauffähigen Dienst zu machen.
Update 30.07.2019
Kleine Ergänzung zu “WSUS 4 Performance optimieren durch Datenbank-Reindexierung, Löschen und manuelles bearbeiten” unter “Tipp 4 – Abgelaufene oder ersetzte Updates löschen”.
Mangels Management Studio wurde die SQL-Abfrage als Skript gespeichert, als erste Zeile noch
USE SUSDB
ergänzt und mittels folgendem Befehl ausgeführt:
sqlcmd -S np:\\.\pipe\MICROSOFT##WID\tsql\query -i C:\temp\Wsus01.sql
Der Durchlauf brauchte gut zwei Tage, also nicht nervös werden, wenn es “etwas” dauert, bis “Deleting …” angezeigt wird oder das Skript beendet wird. Danach war es (endlich) wieder möglich die PowerShell-Befehle
Invoke-WsusServerCleanup -CleanupObsoleteUpdates
und
Invoke-WsusServerCleanup -DeclineSupersededUpdates
erfolgreich durchlaufen zu lassen.
Update 09.06.2021
Damit man “sqlcmd” auf einem Windows Server 2021 R2 zur Verfügung hat, müssen folgende beiden Komponenten heruntergeladen und installiert werden:
Microsoft ODBC Driver 11 für SQL Server – Windows
Microsoft Befehlszeilenprogramme 11 für SQL Server
Und dann gib es noch einen neuen Beitrag von Wolfgang Sommergut zum WAM:
WSUS Automated Maintenance im Test: Updates ablehnen und entfernen, Datenbank und IIS optimieren
Wie man dort lesen kann, hat sich das einstige Powershell-Skript mittlerweile ganz schön weiterentwickelt inkl. GUI.
Verheiratet, Vater von zwei Kindern, eines an der Hand, eines im Herzen. Schon immer Technik-Freund, seit 2001 in der IT tätig und seit über 10 Jahren begeisterter Blogger. Mit meiner Firma IT-Service Weber kümmern wir uns um alle IT-Belange von gewerblichen Kunden und unterstützen zusätzlich sowohl Partner als auch Kollegen.
0 Kommentare
1 Pingback