Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
WSUS Updatebereinigung
Script zum bereinigen des WSUS-Updatespeicher (WSUS-Content)
Vorbereitung
Wichtiger Hinweis
Bevor das script problemlos ausgeführt werden kann sollte der befehl so oft auf dem WSUS-Server ausgeführt werden bis kein Time-Out fehler mehr kommt
Get-WsusServer -Name localhost -PortNumber 8530 | Invoke-WsusServerCleanup -CleanupUnneededContentFiles >> C:\WSUS_Cleanup.log
Script
Script als XML Speichern und in der Windows-Aufgabenplanung importieren (User ggf. anpassen)
- WSUS_Cleanup.xml
<?xml version="1.0" encoding="utf-16"?> <Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task"> <RegistrationInfo> <Date>2018-11-16T11:53:35.4703489</Date> <Author>ATLAS Informationssysteme GmbH</Author> <Description>Wöchentlicher Job zur bereinigung unbenötigter Windows-Updates</Description> </RegistrationInfo> <Triggers> <CalendarTrigger> <StartBoundary>2018-11-16T12:00:00</StartBoundary> <Enabled>true</Enabled> <ScheduleByWeek> <DaysOfWeek> <Saturday /> </DaysOfWeek> <WeeksInterval>1</WeeksInterval> </ScheduleByWeek> </CalendarTrigger> </Triggers> <Principals> <Principal id="Author"> <UserId>.\Administrator</UserId> <LogonType>Password</LogonType> <RunLevel>LeastPrivilege</RunLevel> </Principal> </Principals> <Settings> <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy> <DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries> <StopIfGoingOnBatteries>true</StopIfGoingOnBatteries> <AllowHardTerminate>true</AllowHardTerminate> <StartWhenAvailable>false</StartWhenAvailable> <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable> <IdleSettings> <StopOnIdleEnd>true</StopOnIdleEnd> <RestartOnIdle>false</RestartOnIdle> </IdleSettings> <AllowStartOnDemand>true</AllowStartOnDemand> <Enabled>true</Enabled> <Hidden>false</Hidden> <RunOnlyIfIdle>false</RunOnlyIfIdle> <WakeToRun>false</WakeToRun> <ExecutionTimeLimit>P3D</ExecutionTimeLimit> <Priority>7</Priority> </Settings> <Actions Context="Author"> <Exec> <Command>powershell.exe</Command> <Arguments>-Command "Get-WsusServer -Name localhost -PortNumber 8530 | Invoke-WsusServerCleanup -CleanupUnneededContentFiles >> C:\WSUS_Cleanup.log"</Arguments> </Exec> </Actions> </Task>
Probleme
Fehler: Datenbankfehler
Fehler beim Ausführen eines Datenbankvorgangs. Mögliche Ursache: Die Datenbank ist sehr ausgelastet, der Datenbankdienst wurde beendet, die Verbindung mit der Datenbank wurde getrennt, oder die Nachinstallationsaufgabe wurde nicht erfolgreiche beendet. Wenden Sie sich an den Systemadministrator, wenn das Problem weiterhin besteht. Klicken Sie auf „Serverknoten zurücksetzen„, um erneut zu versuchen, eine Verbindung mit dem Server herzustellen.
Ursache
Nachdem wir versucht haben per PowerShell Befehl die WSUS Serverbereinigung durchzuführen, kommt der Hinweis, dass es ein Timeout Problem ist. Der SQL-Server reagiert nicht rechtzeitig auf die Anfragen, obwohl der Wert standardmäßig auf 600 Sekunden (10 Minuten) eingestellt ist.
Lösung
Dieser Wert ist eigentlich sehr einfach zu verändern. Einfach das SQL Server Management Studio aufrufen, die Verbindung zu
\\.\pipe\Microsoft##WID\tsql\query
herstellen, in die Eigenschaft auf die Servereigenschaften, dort auf Verbindungen und hier kann der Wert für „Remoteverbindungen mit dem Server zulassen – Timeout für Remoteanfragen (Sekunden, 0 = kein Timeout) auf 0 setzen.
Alternative lässt sich der Wert auch per SQL-Befehl ändern
USE SUSDB; GO EXEC sp_configure ´remote query timeout´, 0 ; GO RECONFIGURE ; GO
