Eseguire WSUS 3.0 Cleanup Manager via Powershell

Published 16 May 07 05:39 PM | claudiog 

Il nuovo Windows Server Update Services (WSUS) 3.0 dispone di un wizard nella GUI per procedere al cleanup del server, onde rimuovere materiale obsoleto e recuperare spazio sia dal DB SQL che dal file system (directory WSUS\WsusContent).

Nelle precedenti versioni di WSUS, si svolgevano (quasi) le stesse operazioni con alcuni batch e tools esterni, ma la cosa risultava alquanto scomoda.

Ovviamente WSUS 3.0 ha un modello a oggetti rinnovato rispetto alla 2.0 e mi sono chiesto se fosse possibile creare una script con Powershell per svolgere su base programmatica il task di manutenzione. Ovviamente ... si può !

Cominciamo a  caricare il solito assembly per accedere a WSUS, poi istanziamo l'oggetto AdminProxy e recuperiamo l'istanza del server WSUS:

[System.Reflection.Assembly]::LoadWithPartialName('microsoft.updateservices.administration')

$wsus=new-object 'Microsoft.UpdateServices.Administration.AdminProxy'

$wsusrv=$wsus.GetUpdateServerInstance()


Ora istanziamo un oggetto CleanUpManager ed uno CleanUpScope, per invocare l'azione sulla base di una serie di flag di Cleanup desiderati.

Write-Host 'Invoking WSUS CleanUpManager:' -fore Green
$cm=$Wsusrv.GetCleanupManager()
$cs=new-object 'Microsoft.UpdateServices.Administration.CleanupScope'

Impostiamo i valori di CleanUp desiderati, semplicemente settando le vari eproprietà a $True. Di default sarebbero tutte a $False, quindi l'invocazione del CleanUpManager non darebbe alcun effetto.

#$cs.CleanupObsoleteComputers = $True
$cs.CleanupObsoleteUpdates = $True
$cs.CleanupUnneededContentFiles = $True

Ora siamo pronti, invochiamo il metodo PerformCleanUp e attendiamo un pò di minuti:

# Run !
$cm.PerformCleanup($cs)

L'output sarà un sommario delle azioni intraprese e dello spazio su disco liberato, sulla base dei valori di CleanUpScope scelti. Non resta che schedulare l'esecuzione periodica della script tramite powershell.exe e il task scheduler di Windows Server.

Ciao, Claudio

* Versione 1.0.0, di Wsus-CleanUp.ps1 pubblicata il 20070522

Filed under: ,
Anonymous comments are disabled

About claudiog

MCSA, MCSE, MCT su NT/2000/2003