WSUS Server 2019 Treiber entfernen

dcz01

Lieutenant
Registriert
Nov. 2016
Beiträge
551
Hallo zusammen,

stehe vor einem nicht ganz so leichten Problem.
Ich möchte sehr gerne aus unserem noch sehr frischen WSUS die ganzen Treiber aus der Datenbank inkl. später dann von der Festplatte entfernen.
Dies ist nicht so einfach, da über die normale Konsole immer ein Timeout mit dem klassichen "Serverknoten zurücksetzen" kommt bei der großen Anzahl (so ca. 70.000 Treiberupdates).
Nach etwas Recherche habe ich folgende PowerShell-Befehle gefunden, welcher aber auch zu einem Timeout führen (der .GetUpdates() Befehl sucht natürlich auch alle Updates durch, da wäre eine Filterung oder Begrenzung auf maximal 300-500 Objekte ganz gut):

Code:
[reflection.assembly]::LoadWithPartialName("Microsoft.UpdateServices.Administration")
$wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::GetUpdateServer();
$wsus.GetUpdates() | Where {$_.UpdateClassificationTitle -eq 'Drivers'} | ForEach-Object -Parallel {$wsus.DeleteUpdate($_.Id.UpdateId.ToString()); Write-Host $_.Title removed }

Folgendes wurde am WSUS schon angewendet:
Code:
sqlcmd -E -S \\.\pipe\Microsoft##WID\tsql\query
exec sp_configure 'show advanced option', '1';
reconfigure;
exec sp_configure;
go
exec sp_configure 'remote query timeout (s)', 0;
reconfigure with override;
go
quit

Die WSUS-Pool-Einstellungen:
1582035662164.png


Damit wäre normalerweise der Timeout abgeschalten bzw. auf unendlich gesetzt, aber er kommt nach wie vor.
Kann mir das jemand ggf. erklären oder hat jemand eine Lösung?
 
Frischer WSUS?
Dann Datenbank wegwerfen und neu bauen. Wenn die Treiber erstmal drin waren, kann man eh nicht mehr viel tun. Da ist es gut, wenn der wsus noch jung ist.
 
  • Gefällt mir
Reaktionen: areiland und evilhunter
@RalphS Ich hab keine Lust wieder den WSUS komplett frisch aufzusetzen, nachdem der gerade einmal 3 Wochen läuft und dann wieder die 300-400 GB Updates laden darf...
Anscheinend gibt es doch Lösungen und diese hätte ich gerne angewandt.
 
Ich habs nun mit einem Entwickler gemeinsam hinbekommen, alle Treiber mit folgendem SQL-Statement direkt im SQL Management Studio abzulehnen und dann per Cleanup-PowerShell-Skript von der Festplatte zu entfernen:

Code:
DECLARE @RC int;
DECLARE @count int;
DECLARE @updateID uniqueidentifier;
DECLARE @adminName nvarchar(385);
DECLARE @failIfReplica bit;
DECLARE @tbl table(ID int identity(1,1) primary key not null, updateid uniqueidentifier not null)

INSERT @tbl(updateid) (SELECT [UpdateId]
  FROM [SUSDB].[PUBLIC_VIEWS].[vUpdate]
  WHERE UpdateType = 'Driver'
  And IsDeclined=0)

SET @count = 1;
SET @adminName='SQLDecline'
SET @failIfReplica=0

WHILE @count <= (SELECT COUNT(*) FROM @tbl) BEGIN
                SET @updateID = (SELECT updateid FROM @tbl WHERE ID = @count);
                EXECUTE @RC = [SUSDB].[dbo].[spDeclineUpdate] @updateID, @adminName, @failIfReplica
                SET @count += 1;
END;

SELECT * FROM PUBLIC_VIEWS.vUpdate WHERE UpdateType = 'Driver' ORDER BY DefaultTitle ASC;
 
Zurück
Oben