WSUS 3.0 - Updates und Computer per Powershell-Script aufräumen
Wer kennt das nicht: Im lokalen Netzwerk steht/en einer oder mehrere WSUS-Server die täglich / wöchentlich ihre Updates synchronisieren und downloaden. Nun werden oft alte Updates durch Neue ersetzt (Revisionen) aber auch viele Upates werden auf Grund eines Servicepack nicht mehr benötigt. Dem WSUS-Server manuell in bestimmten Zeitabständen hinterher zuräumen ist einfach lästig und kostet wertvolle Arbeitszeit.
Bisher war es nicht möglich mit Hilfe von Microsoft - Tools diesen Vorgang zu automatisieren. Mit der neuen Kommandozeilenprogramm "Powershell" ist es nun problemlos möglich.
Zuerst speichert ihr folgenden Quellcode in eine Textdatei mit der Endung ".ps1" ab:
Bitte wundert euch nicht, dass im obigen Script 6 Parameter definierbar sind und im WSUS - Dialog (Optionen => Assistent für die WSUS-Serverbereinigung) nur Fünf Stück. Per Skript ist es möglich den Punkt "Nicht verwendete Updates und Updaterevisonen" getrennt anzusprechen. Das Script könnt ihr dann als geplante Task einrichten. Wie ein Powershell-Script gestartet wird, könnt ihr hier nachlesen.
Viele Grüße,
Dani
Bisher war es nicht möglich mit Hilfe von Microsoft - Tools diesen Vorgang zu automatisieren. Mit der neuen Kommandozeilenprogramm "Powershell" ist es nun problemlos möglich.
Zuerst speichert ihr folgenden Quellcode in eine Textdatei mit der Endung ".ps1" ab:
#Region PARAMETERS
### WSUS Verbindungsparameter ###
# Servername
[String]$updateServer = "test01.domain.local"
# SSL Verbinung, $True = Ja, %False = Nein
[Boolean]$useSecureConnection = $False
# Gibt den Port an auf welchem der WSUS-Server lauscht
[Int32]$portNumber = 80
### Aufräum-Parameter ###
# Ersetzte Updates
# Lehnen Sie Updates ab, die min. 30 Tage lang nicht genehmigt wurden, die zurzeit von keinem Client benötigt werden und die durch ein genehmigtes Update ersetzt werden.
[Boolean]$supersededUpdates = $True
# Abgelaufene Updates
# Lehnen Sie Updates ab, die von Microsoft nicht genehmigt wurden und deren Gültigkeit abgelaufen ist.
[Boolean]$expiredUpdates = $True
# Nicht verwendete Updates
# Löschen Sie Updates die abgelaufen sind und min. 30 Tage lang nicht genehmigt wurden.
[Boolean]$obsoleteUpdates = $True
# Nicht verwendete Updaterevisionen
# Löschen Sie ältere Revisonen von Updates, die min. 30 Tage lang nicht genehmigt wurden.
[Boolean]$compressUpdates = $True
# Computer, die keine Verbindung mit dem Server herstellen
# Löschen Sie Computer, die innerhalb von min. 30 Tagen keine Verbindung mit dem Server hergestellt haben.
[Boolean]$obsoleteComputers = $True
# Nicht erfoderliche Updatedateien
# Löschen Sie Updatedateien, die von Updates oder Downstreamservern nicht benötigt werden.
[Boolean]$unneededContentFiles = $True
#EndRegion PARAMETERS
#Region PROGRAM
# Lade .NET - Assembly
[void][reflection.assembly]::LoadWithPartialName("Microsoft.UpdateServices.Administration")
# Verbindung zum WSUS-Server wird aufgebaut
$Wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::getUpdateServer($updateServer,$useSecureConnection,$portNumber)
# Startet den Aufraeumvorgang
$CleanupManager = $Wsus.GetCleanupManager()
$CleanupScope = New-Object Microsoft.UpdateServices.Administration.CleanupScope($supersededUpdates,$expiredUpdates,$obsoleteUpdates,$compressUpdates,$obsoleteComputers,$unneededContentFiles)
$CleanupManager.PerformCleanup($CleanupScope)
#EndRegion PROGRAM
Viele Grüße,
Dani
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 124914
Url: https://administrator.de/knowledge/wsus-3-0-updates-und-computer-per-powershell-script-aufraeumen-124914.html
Ausgedruckt am: 24.12.2024 um 12:12 Uhr
6 Kommentare
Neuester Kommentar
Hi Dani,
ich wollte das Script gerade mal testen, weil ich meinen WSUS mal aufräumen müsste. Ganz nebenbei: Das ist mein erstes Experiment mit Powershell und schon gleich stehe ich vor einem gaaaaanz kleinen Problem. Die PS meint nämlich es handelt sich nicht um ein PS-Script und meckert mich mit
Manuel
ich wollte das Script gerade mal testen, weil ich meinen WSUS mal aufräumen müsste. Ganz nebenbei: Das ist mein erstes Experiment mit Powershell und schon gleich stehe ich vor einem gaaaaanz kleinen Problem. Die PS meint nämlich es handelt sich nicht um ein PS-Script und meckert mich mit
Die Benennung "wsuscleanup.ps1" wurde nicht als Cmdlet, Funktion, ausführbares Programm oder Skriptdatei erkannt. Überprüfen Sie die Benennung, und versuchen Sie es erneut. Bei Zeile:1 Zeichen:15 + wsuscleanup.ps1 <<<<
an. Was mache ich falsch?Manuel