WSUS Assistent zur Serverbereinigung bricht ab beim Löschen nicht benötigter Updates mit Serverknoten zurücksetzen
Hi all!
Der WSUS ist gerade mein Sorgenkind.
Er ist mitnichten mehr allein über den Assistenten zur Serverbereinigung zu warten, sondern zickt bereits nach 1 Monat wieder herum mit Timeoutfehlern und der einzigen Möglichkeit "Serverknoten zurücksetzen" bei dem Versuch, die Wartung mittels des Assistenten durchzuführen....
Dabei steht in den Verbindungseigenschaften das Timeout bereits auf "0" und auch das allg. empfohlene Datenbankwartungsskript ist durchgelaufen. Alle nicht benötigten Updates sind explizit abgelehnt, alle eigentlich "automatisch" genehmigten Updates wurden z.T. nochmal händisch genehmigt.
Trotzdem rennt der blöde Assistent offenbar in einen Timeout. (Wo könnte das noch definiert werden?)
Eine SQL Abfrage mit "spGetObsoleteUpdatesToCleanup" liefert einiges, aber händisch löschen, bei mehreren hundert, wie teils empfohlen?
Nur die evtl. "hängenden" mit niedrigster Nummer manuell zu löschen blieb natürlich erfolglos....
Hier https://www.emde-it-loesungen.de/techtalk/systemadministration/wsus-wart ... gibt es aber folgenden Tipp um das mittels SQL Management Studio Express zu lösen:
Mit der SUSDB verbinden und dann als Abfrage starten:
Das macht dasselbe, was der Assistent tun sollte, allerdings ohne in diese doofen Timeouts zu laufen.
Bisher stabil 15 Updates in 30 min. gelöscht. Immerhin....
Das ist nicht neu, ich habe das selbst vor einiger Zeit schonmal so gelöst, aber da ich es hier nicht gefunden habe und auch im Netz den ganzen Abend nochmal rumgesucht habe, hier nochmal in diesem Forum...
LG
Buc
Edit: Ich habe mein MS-Bashing vergessen:
WAS MACHEN DIE DA IN REDMOND MIT DEN UPDATES????
Rollen da demnächst Köpfe, oder ist das Teil einer nicht kommunizierten Strategie???
Seit Jahren werden Probleme mit dem WSUS auch in entsprechenden MS Foren diskutiert und Workarounds angeboten.
Statt dass aber der WSUS Assistent mal gefixt würde... Niente. Nix. Nothing. Die "Community" hats doch gelöst. Haben wir hier Open Source Verhältnisse? Oder bezahlen wir deren Produkte noch?
Sicherheitslücken können in 90 Tagen nicht mehr gefixt werden, Patchdays fallen nun komplett aus. Ich bin kein Programmierer, aber mein gehasstes Google hat Gründe diese 90-Tage-Frist zu setzen....
Könnten die in den 50ern gelandeten Aliens den Laden nun komplett übernommmen haben und Anpassungsschwierigkeiten haben?
Ist das ein Kampf zwischen denen aus dem Andromeda-Nebel und den Klingonen?
Oder sind die Manager da so doof, wie ich befürchte?
Wann wird von einem frustrierten MS-Entwickler der Windows Code geleaked?
Warum erfahren wir auf Wikileaks nur Details zu unmoralischen Aktionen demokratisch gewählter Regierungen und nichts von weltbeherrschenden undemokratischen Informationstechnologiekonzernen?
Das wäre mal spannend!
Fragen über Fragen... Und nur weil der blöde WSUS-Bereinigungs-Assistent mal wieder hing....
Assoziationsketten sind lustig.
Jetzt gehts mir aber wieder besser, falls jemand sich fragen sollte....
Der WSUS ist gerade mein Sorgenkind.
Er ist mitnichten mehr allein über den Assistenten zur Serverbereinigung zu warten, sondern zickt bereits nach 1 Monat wieder herum mit Timeoutfehlern und der einzigen Möglichkeit "Serverknoten zurücksetzen" bei dem Versuch, die Wartung mittels des Assistenten durchzuführen....
Dabei steht in den Verbindungseigenschaften das Timeout bereits auf "0" und auch das allg. empfohlene Datenbankwartungsskript ist durchgelaufen. Alle nicht benötigten Updates sind explizit abgelehnt, alle eigentlich "automatisch" genehmigten Updates wurden z.T. nochmal händisch genehmigt.
Trotzdem rennt der blöde Assistent offenbar in einen Timeout. (Wo könnte das noch definiert werden?)
Eine SQL Abfrage mit "spGetObsoleteUpdatesToCleanup" liefert einiges, aber händisch löschen, bei mehreren hundert, wie teils empfohlen?
Nur die evtl. "hängenden" mit niedrigster Nummer manuell zu löschen blieb natürlich erfolglos....
Hier https://www.emde-it-loesungen.de/techtalk/systemadministration/wsus-wart ... gibt es aber folgenden Tipp um das mittels SQL Management Studio Express zu lösen:
Mit der SUSDB verbinden und dann als Abfrage starten:
DECLARE @var1 INT
DECLARE @msg nvarchar(100)
CREATE TABLE #results (Col1 INT) INSERT INTO #results(Col1)
EXEC spGetObsoleteUpdatesToCleanup
DECLARE WC Cursor FOR SELECT Col1 FROM #results
OPEN WC
FETCH NEXT FROM WC INTO @var1 WHILE (@@FETCH_STATUS > -1)
BEGIN SET @msg = 'Deleting ' + CONVERT(varchar(10), @var1) RAISERROR(@msg,0,1) WITH NOWAIT
EXEC spDeleteUpdate @localUpdateID=@var1
FETCH NEXT FROM WC INTO @var1
END
CLOSE WC
DEALLOCATE WC
DROP TABLE #results
Bisher stabil 15 Updates in 30 min. gelöscht. Immerhin....
Das ist nicht neu, ich habe das selbst vor einiger Zeit schonmal so gelöst, aber da ich es hier nicht gefunden habe und auch im Netz den ganzen Abend nochmal rumgesucht habe, hier nochmal in diesem Forum...
LG
Buc
Edit: Ich habe mein MS-Bashing vergessen:
WAS MACHEN DIE DA IN REDMOND MIT DEN UPDATES????
Rollen da demnächst Köpfe, oder ist das Teil einer nicht kommunizierten Strategie???
Seit Jahren werden Probleme mit dem WSUS auch in entsprechenden MS Foren diskutiert und Workarounds angeboten.
Statt dass aber der WSUS Assistent mal gefixt würde... Niente. Nix. Nothing. Die "Community" hats doch gelöst. Haben wir hier Open Source Verhältnisse? Oder bezahlen wir deren Produkte noch?
Sicherheitslücken können in 90 Tagen nicht mehr gefixt werden, Patchdays fallen nun komplett aus. Ich bin kein Programmierer, aber mein gehasstes Google hat Gründe diese 90-Tage-Frist zu setzen....
Könnten die in den 50ern gelandeten Aliens den Laden nun komplett übernommmen haben und Anpassungsschwierigkeiten haben?
Ist das ein Kampf zwischen denen aus dem Andromeda-Nebel und den Klingonen?
Oder sind die Manager da so doof, wie ich befürchte?
Wann wird von einem frustrierten MS-Entwickler der Windows Code geleaked?
Warum erfahren wir auf Wikileaks nur Details zu unmoralischen Aktionen demokratisch gewählter Regierungen und nichts von weltbeherrschenden undemokratischen Informationstechnologiekonzernen?
Das wäre mal spannend!
Fragen über Fragen... Und nur weil der blöde WSUS-Bereinigungs-Assistent mal wieder hing....
Assoziationsketten sind lustig.
Jetzt gehts mir aber wieder besser, falls jemand sich fragen sollte....
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 330038
Url: https://administrator.de/knowledge/wsus-assistent-zur-serverbereinigung-bricht-ab-beim-loeschen-nicht-benoetigter-updates-mit-serverknoten-330038.html
Ausgedruckt am: 03.04.2025 um 23:04 Uhr
12 Kommentare
Neuester Kommentar

Hallo,
ich mache das tatsächlich mit einer manuellen SQL-Abfrage, deren Ergebnis ich in Notepad++ paste.
Dort erweitere ich den Inhalt via Macrorekorder in Löschbefehle und paste das zurück.
2 Minuten Aufwand
Gruß,
Jörg
ich mache das tatsächlich mit einer manuellen SQL-Abfrage, deren Ergebnis ich in Notepad++ paste.
Dort erweitere ich den Inhalt via Macrorekorder in Löschbefehle und paste das zurück.
2 Minuten Aufwand
Gruß,
Jörg
Hallo,
ich habe die WSUS Bereinigung über die Aufgabenplanung mit Powershell gemacht.
Batch zum Aufruf des Powershellscripts:
Powershellscript:
Wichtig ist hierbei den richtigen WSUS Port anzugeben.
ich habe die WSUS Bereinigung über die Aufgabenplanung mit Powershell gemacht.
Batch zum Aufruf des Powershellscripts:
@echo off
set log=c:\psskript\wsus-cleanup.log
set cleanupscript=c:\wsus\WSUS-Serverbereinigung.ps1
set wsus-server-01=Server.xxxx.local
echo. >> "%log%"
echo ############################################################ >> "%log%"
echo. >> "%log%"
echo. >> "%log%"
echo Cleanup Report %wsus-server-01% on %date%: >> "%log%"
echo ------------------------------------------------------------ >> "%log%"
"%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe" "%cleanupscript%" %wsus-server-01% >> "%log%"
Powershellscript:
#Region VARIABLES
# WSUS Connection Parameters:
[String]$updateServer = "server.xxxx.local"
[Boolean]$useSecureConnection = $False
[Int32]$portNumber = 80
# Cleanup Parameters:
# Decline updates that have not been approved for 30 days or more, are not currently needed by any clients, and are superseded by an aproved update.
[Boolean]$supersededUpdates = $True
# Decline updates that aren't approved and have been expired my Microsoft.
[Boolean]$expiredUpdates = $True
# Delete updates that are expired and have not been approved for 30 days or more.
[Boolean]$obsoleteUpdates = $True
# Delete older update revisions that have not been approved for 30 days or more.
[Boolean]$compressUpdates = $True
# Delete computers that have not contacted the server in 30 days or more.
[Boolean]$obsoleteComputers = $True
# Delete update files that aren't needed by updates or downstream servers.
[Boolean]$unneededContentFiles = $True
#EndRegion VARIABLES
#Region SCRIPT
# Load .NET assembly
[void][reflection.assembly]::LoadWithPartialName("Microsoft.UpdateServices.Administration")
# Connect to WSUS Server
$Wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::getUpdateServer($updateServer,$useSecureConnection,$portNumber)
# Perform Cleanup
$CleanupManager = $Wsus.GetCleanupManager()
$CleanupScope = New-Object Microsoft.UpdateServices.Administration.CleanupScope($supersededUpdates,$expiredUpdates,$obsoleteUpdates,$compressUpdates,$obsoleteComputers,$unneededContentFiles)
$CleanupManager.PerformCleanup($CleanupScope)
#EndRegion SCRIPT
Wichtig ist hierbei den richtigen WSUS Port anzugeben.

Huhu,
yupp - aber wenn Du erst einmal so weit bist wie unser Forenpirat, fliegen Dir deine Scripte ebenfalls mit einem Timeout um die Ohren. Auch dann, wenn Du den Timeout-Wert im SQL-Server auf "unendlich" gedreht hast.
Glaub 's uns einfach
Gruß,
Jörg
yupp - aber wenn Du erst einmal so weit bist wie unser Forenpirat, fliegen Dir deine Scripte ebenfalls mit einem Timeout um die Ohren. Auch dann, wenn Du den Timeout-Wert im SQL-Server auf "unendlich" gedreht hast.
Glaub 's uns einfach
Gruß,
Jörg
Hallo Tektronix,
mit deinem Powershellscript bekomm ich eine Fehlermeldung:
Was ist das?
Auch wenn ich das obige Script von the-buccaneer im sclmanager ausführe, bekomme ich folgende Fehler:
Kann mir da jemand helfen? Der WSUS läuft eigentlich, nur das Cleanup der "Nicht verwendete Updates und Updaterevisionen" geht nicht durch, da kommt dann der Datenbankfehler...
Wir haben den WSUS 2012r2 mit den akutellsten Aupdates laufen....
und: der SQL Timeputwert ist schon auf "0" gesetzt ...
mit deinem Powershellscript bekomm ich eine Fehlermeldung:
Ausnahme beim Aufrufen von "PerformCleanup" mit 1 Argument(en): "@errorMessage
spDeleteUpdate got error from spDeleteRevision"
In C:\Users\administrator\Downloads\wsuscleanup.ps1:28 Zeichen:1
+ $CleanupManager.PerformCleanup($CleanupScope)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) , MethodInvocationException
+ FullyQualifiedErrorId : SqlException
Was ist das?
Auch wenn ich das obige Script von the-buccaneer im sclmanager ausführe, bekomme ich folgende Fehler:
(44 Zeile(n) betroffen)
Deleting 549068
Meldung 50000, Ebene 16, Status 1, Prozedur spDeleteRevision, Zeile 33
@errorMessage
Meldung 50000, Ebene 16, Status 1, Prozedur spDeleteUpdate, Zeile 72
spDeleteUpdate got error from spDeleteRevision
Deleting 549067
Meldung 50000, Ebene 16, Status 1, Prozedur spDeleteRevision, Zeile 33
@errorMessage
Meldung 50000, Ebene 16, Status 1, Prozedur spDeleteUpdate, Zeile 72
spDeleteUpdate got error from spDeleteRevision
.... geht noch viel weiter
Kann mir da jemand helfen? Der WSUS läuft eigentlich, nur das Cleanup der "Nicht verwendete Updates und Updaterevisionen" geht nicht durch, da kommt dann der Datenbankfehler...
Wir haben den WSUS 2012r2 mit den akutellsten Aupdates laufen....
und: der SQL Timeputwert ist schon auf "0" gesetzt ...
Hi nochmal
ich habe jetzt die WSU DB auf einem richtigen SWL 2012 Server laufen, und trozdem kann ich bestimmte Updates einfach nicht löschen. Wenn ich versuche ein update mit
versuche zu löschen, kommt immer diese Meldung in Rot:
Egal bei welcher ID ich das versuche
Ich finde im Internet nichts mehr was mir weiterhilft, hat jemand noch eine Idee?
ich habe jetzt die WSU DB auf einem richtigen SWL 2012 Server laufen, und trozdem kann ich bestimmte Updates einfach nicht löschen. Wenn ich versuche ein update mit
exec spDeleteUpdate @localUpdateID=549068
Meldung 50000, Ebene 16, Status 1, Prozedur spDeleteRevision, Zeile 33
@errorMessage
Meldung 50000, Ebene 16, Status 1, Prozedur spDeleteUpdate, Zeile 72
spDeleteUpdate got error from spDeleteRevision
Hallo,
schau Dir das mal an: WSUS.de.
schau Dir das mal an: WSUS.de.

Hallo,
ich hätte da noch ein Script, welches auf einem 2008r2 WSUS (SBS2011) die Datenbank neu indiziert.
Würde das Abhilfe schaffen? Ich frage da sicherheitshalber noch mal nach; bevor ich hier jetzt etwas poste was jemanden dabei unterstützt, seine Datenbank zu schroten
Gruß,
Jörg
ich hätte da noch ein Script, welches auf einem 2008r2 WSUS (SBS2011) die Datenbank neu indiziert.
Würde das Abhilfe schaffen? Ich frage da sicherheitshalber noch mal nach; bevor ich hier jetzt etwas poste was jemanden dabei unterstützt, seine Datenbank zu schroten
Gruß,
Jörg