c64b311ee9
Goto Top

WSUS Treiber entfernen

Guten Morgen,


Windows Server 2012R2 Datacenter
WSUS 6.3.9600.18228

ich habe folgendes Problem.
Ich würde gerne folgendes Powershell Script auf dem WSUS ausführen, damit die Treiber aus der DB gelöscht werden. (Sind ca. 57.000)
Alte abgelehnte Updates die länger als 30 Tage nicht gebraucht wurden werden ja durch die Serverbereinigung gelöscht, richtig?


[reflection.assembly]::LoadWithPartialName("Microsoft.UpdateServices.Administration")  
 
$wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::GetUpdateServer();
 
$wsus.GetUpdates() | Where {$_.IsDeclined -eq $true} | ForEach-Object {$wsus.DeleteUpdate($_.Id.UpdateId.ToString()); Write-Host $_.Title removed }
( http://www.flexecom.com/how-to-delete-driver-updates-from-wsus-3-0/ )


Leider erhalte ich immer folgende Fehlermeldung und ich weiß einfach nicht wieso Windows meckert....

In C:\Users\BENUTZER\Desktop\Neues Textdokument.ps1:3 Zeichen:188B
+ ... teId.ToString()); Write-Host $_.Title removed }
+                    ~
Unerwartetes Token ")" in Ausdruck oder Anweisung.  
In C:\Users\BENUTZER\Desktop\Neues Textdokument.ps1:3 Zeichen:219
+ ... .Title removed }
+                    ~
Unerwartetes Token "}" in Ausdruck oder Anweisung.  
    + CategoryInfo          : ParserError: (:) , ParentContainsErrorRecordException
    + FullyQualifiedErrorId : UnexpectedToken

Wäre jemand so nett, mir zu helfen?
Danke!

Content-Key: 305283

Url: https://administrator.de/contentid/305283

Ausgedruckt am: 19.03.2024 um 09:03 Uhr

Mitglied: Snowman25
Snowman25 25.05.2016 um 10:13:31 Uhr
Goto Top
Morgen!

Wie wäre es, wenn du den eingebauten CleanUp-Wizard des WSUS nutzt? Oder spricht da etwas dagegen?
Von Scripten, welche im WSUS herumfuhrwerken würde ich abstand nehmen, solange diese nicht von Microsoft kommen.
Mitglied: c64b311ee9
c64b311ee9 25.05.2016 um 10:26:00 Uhr
Goto Top
Moin,

danke für deine Antwort. Den benutze ich auch, leider entfernt dieser aber nicht die Treiber...
unbenannt
Mitglied: Snowman25
Snowman25 25.05.2016 um 11:31:03 Uhr
Goto Top
Die Treiber kannst du folgendermaßen löschen lassen:
  1. Server-Manager --> Rollen --> WSUS --> Update Services --> Updates --> Alle Updates
    1. Unter Aktionen -> Neue Updateansicht... erstellst du eine Ansicht, welche NUR Updates der Klassifizierung "Treiber" enthält.
    2. Wechsle in die neue Ansicht, und wähle Gehnemigung: Alle bis auf abgelehnte mit Status: Alle
    3. Alle Markieren -> Rechtsklick -> Ablehnen
  2. Server-Manager --> Rollen --> WSUS --> Update Services --> Optionen
    1. Produkte und Klassifizierungen starten und im Tab Klassifizierungen "Treiber" abwählen.
  3. Jetzt noch einmal Synchronisieren und die Server-Bereinigung laufen lassen.

Die Ansicht kannst du danach wieder löschen.


Das sollte die Dateien aus dem Filesystem löschen.

Bitte beachte: Du wirst die Updates noch immer unter Alle Updates -> Abgelehnte finden. Das sind allerdings "leere" Einträge. Die Metadaten sind zwar noch da, aber keine Updatedateien sind gespeichert.

Die WSUS-Datenbank lässt sich nicht verkleinern oder Teile davon löschen. Zumindest nicht, ohne selbst Hand an zu legen.
Die SUSDB sollte nicht von Hand editiert werden.

Auf eiegene Verantwortung:
Solltest du dennoch darin herumfuhrwerken wollen, installiere dir Microsoft SQL Server Management Studio Express.
Servername: \\.\pipe\mssql$microsoft##ssee\sql\query


Gruß,
@Snowman25
Mitglied: c64b311ee9
c64b311ee9 25.05.2016 um 12:59:05 Uhr
Goto Top
Vielen Dank für deine Antwort!
Aber so eine Ansicht hatte ich mir schon gebastelt und auch schon bereinigt, aber ich hätte eben gern alle abgelehnten Updates auch als Metadaten entfernt, deswegen wollte ich ja das Script benutzen. Finde es einfach übersichtlicher und einfacher den überblick zu behalten wenn abgelehnte Updates hin und wieder per Script entfernt werden...
Mitglied: Snowman25
Snowman25 25.05.2016 um 13:06:27 Uhr
Goto Top
Eben wegen der Übersichtlichkeit wurde die Update-Ansicht im WSUS so gestaltet, dass du abgelehnte Updates NUR in der Ansicht für abgelehnte Updates findest. Alle anderen Ansichtsoptionen beinhalten keine abgelehnten Updates. Insofern verstehe ich den Gesichtspunkt der Übersichtlichkeit nicht ganz.
Mitglied: c64b311ee9
c64b311ee9 26.05.2016 um 07:37:47 Uhr
Goto Top
Ja, da magst du vlt. Recht haben, aber die Performance des WSUS ist dadurch spürbar schlechter, weil er alle Treiber immer mit indiziert...
Vielleicht kann mir jemand anderes weiterhelfen?
Mitglied: Snowman25
Snowman25 27.05.2016 um 10:57:12 Uhr
Goto Top
Um Performance-Gewinn beim WSUS zu erreichen, würde ich erst mal alle Checks im Best Practice Analyzer durchlaufen lassen und danach handeln: Microsoft Technet: Best Practice Analyzer

Der von Microsoft vorgeschlagene Weg, die SUSDB zu "bereinigen" ist eine Neuinstallation des WSUS-Dienstes.
Da der WSUS ja nur sehr wenig Konfiguration benötigt, sollte das kein Problem sein.

Gruß,
@Snowman25
Mitglied: c64b311ee9
c64b311ee9 27.05.2016 um 11:03:25 Uhr
Goto Top
Habe nun alle 57.000 Treiber aus der DB entfernt per SQL hat nur 5 Minuten gedauert und alles ist schick wie ich es wollte und WSUS ist deutlich performanter, danke trotzdem für deine Hilfe.
Mitglied: Arthur.S
Arthur.S 17.06.2020 um 12:03:43 Uhr
Goto Top
Hi,
ich möchte auch gerne die Klassifizierung Treiber (Metadaten) aus der DB entfernen.
Mein Problem ist aber eher dass die DB mittlerweile die 10 GB Grenze der SQL Express geknackt hat und ich nicht einmal genug freien Speicher habe damit das Bereinigungsscript durchlaufen kann. DB kann nicht weiter erweitert werden. Lizenzgrenze.

Hast du ganz zufällig noch den SQL Befehl (das Script) mit dem du die DB von den Treibern bereinigt hast?
Wäre Super wenn du dies teilen würdest. Danke schon mal.
VG
Mitglied: c64b311ee9
c64b311ee9 22.06.2020 um 13:12:41 Uhr
Goto Top
Hallo Arthur,

verbinde dich am Besten per SQL Management Studio, trage folgendes als Servername ein: \\.\pipe\Microsoft##WID\tsql\query
mit dem WSUS und gehe wie im folgenden Beispiel vor.

1. Prüfen ob die GUID gleich "D2CB599A-FA9F-4AE9-B346-94AD54EE0629" ist.
Neue Abfrage

"USE SUSDB
GO
SELECT UpdateTypeID FROM tbUpdateType WHERE Name = 'Driver'
GO"

2. Alle Abfragen einzeln ausführen:

delete from tbrevisionlanguage where revisionid in (select revisionid from tbRevision where LocalUpdateId in (select LocalUpdateId from tbUpdate where UpdateTypeID = 'D2CB599A-FA9F-4AE9-B346-94AD54EE0629'))
delete from tbProperty where revisionid in (select revisionid from tbRevision where LocalUpdateId in (select LocalUpdateId from tbUpdate where UpdateTypeID = 'D2CB599A-FA9F-4AE9-B346-94AD54EE0629'))
delete from tbLocalizedPropertyForRevision where revisionid in (select revisionid from tbRevision where LocalUpdateId in (select LocalUpdateId from tbUpdate where UpdateTypeID = 'D2CB599A-FA9F-4AE9-B346-94AD54EE0629'))
delete from tbFileForRevision where revisionid in (select revisionid from tbRevision where LocalUpdateId in (select LocalUpdateId from tbUpdate where UpdateTypeID = 'D2CB599A-FA9F-4AE9-B346-94AD54EE0629'))
delete from tbInstalledUpdateSufficientForPrerequisite where prerequisiteid in (select Prerequisiteid from tbPreRequisite where revisionid in (select revisionid from tbRevision where LocalUpdateId in (select LocalUpdateId from tbUpdate where UpdateTypeID = 'D2CB599A-FA9F-4AE9-B346-94AD54EE0629')))
delete from tbPreRequisite where revisionid in (select revisionid from tbRevision where LocalUpdateId in (select LocalUpdateId from tbUpdate where UpdateTypeID = 'D2CB599A-FA9F-4AE9-B346-94AD54EE0629'))
delete from tbDeployment where revisionid in (select revisionid from tbRevision where LocalUpdateId in (select LocalUpdateId from tbUpdate where UpdateTypeID = 'D2CB599A-FA9F-4AE9-B346-94AD54EE0629'))
delete from tbXml where revisionid in (select revisionid from tbRevision where LocalUpdateId in (select LocalUpdateId from tbUpdate where UpdateTypeID = 'D2CB599A-FA9F-4AE9-B346-94AD54EE0629'))
delete from tbPreComputedLocalizedProperty where revisionid in (select revisionid from tbRevision where LocalUpdateId in (select LocalUpdateId from tbUpdate where UpdateTypeID = 'D2CB599A-FA9F-4AE9-B346-94AD54EE0629'))
delete from tbDriver where revisionid in (select revisionid from tbRevision where LocalUpdateId in (select LocalUpdateId from tbUpdate where UpdateTypeID = 'D2CB599A-FA9F-4AE9-B346-94AD54EE0629'))
delete from tbFlattenedRevisionInCategory where revisionid in (select revisionid from tbRevision where LocalUpdateId in (select LocalUpdateId from tbUpdate where UpdateTypeID = 'D2CB599A-FA9F-4AE9-B346-94AD54EE0629'))
delete from tbRevisionInCategory where revisionid in (select revisionid from tbRevision where LocalUpdateId in (select LocalUpdateId from tbUpdate where UpdateTypeID = 'D2CB599A-FA9F-4AE9-B346-94AD54EE0629'))
delete from tbMoreInfoURLForRevision where revisionid in (select revisionid from tbRevision where LocalUpdateId in (select LocalUpdateId from tbUpdate where UpdateTypeID = 'D2CB599A-FA9F-4AE9-B346-94AD54EE0629'))
delete from tbRevision where LocalUpdateId in (select LocalUpdateId from tbUpdate where UpdateTypeID = 'D2CB599A-FA9F-4AE9-B346-94AD54EE0629')
delete from tbUpdateSummaryForAllComputers where LocalUpdateId in (select LocalUpdateId from tbUpdate where UpdateTypeID = 'D2CB599A-FA9F-4AE9-B346-94AD54EE0629')

3.
delete from tbUpdate where UpdateTypeID = 'D2CB599A-FA9F-4AE9-B346-94AD54EE0629'


4. Hier der Beitrag nochmal zum Nachlesen
https://libyphilip.wordpress.com/2017/01/04/how-to-delete-driver-updates ...
Mitglied: Arthur.S
Arthur.S 22.06.2020 um 14:44:42 Uhr
Goto Top
Besten Dank!
Werde ich gleich mal ausprobieren.