Quando si esegue la procedura guidata di pulizia del server WSUS dallo snap-in MMC, è possibile che si riceva il seguente errore del database WSUS:
Errore: Errore del database
Si è verificato un errore durante il tentativo di eseguire un’operazione di database. Ciò può accadere se il database è molto occupato, se il servizio di database viene arrestato, se la connessione al database viene persa, se l’attività di post-installazione non viene completata correttamente. Contattare l’amministratore di sistema se il problema persiste.
Fare clic su Ripristina nodo server per provare a connettersi nuovamente al server.
Se non hai eseguito la pulizia da molto tempo, questo può accadere. Quindi potresti decidere di leggere il manuale del wsusutil.strumento exe in cui si pensa che l’interruttore deleteunneededrevisions risolverà tutti i problemi, tuttavia, sembra che il wsusutil.il parametro exe deleteunneededrevisions non esiste su WSUS 3.1.
Fortunatamente, puoi ottenere la stessa cosa usando powershell. I vantaggi qui sono:
- Se è stato utilizzato questo script powershell una volta, è possibile utilizzare nuovamente la procedura guidata di pulizia del server dalla GUI.
- È possibile pianificare l’esecuzione di questo script powershell utilizzando l’utilità di pianificazione (ad esempio una volta al mese).
- Sul mio server WSUS, avevo circa 600 GB di aggiornamenti. Dopo aver eseguito questo script, quasi 2000 aggiornamenti sono stati compressi, risparmiando quasi 200 GB di spazio su disco!
Se si salva il contenuto dello script powershell in “WSUSCleanup. ps1”, è possibile eseguire questo script come segue da una finestra del prompt dei comandi DOS: powershell-file “WSUSCleanup. ps1”
Assicurarsi di aprire il prompt dei comandi DOS come amministratore!
Lo script stesso è lungo solo 11 righe (13 se includi commenti):
# WSUSCleanup. ps1
:: LoadWithPartialName(“Microsoft.Servizi di aggiornamento.Per ulteriori informazioni, consultare il sito:
$cleanupScope = nuovo oggetto Microsoft.Servizi di aggiornamento.Amministrazione.CleanupScope;
$cleanupScope.DeclineSupersededUpdates = true true
clean cleanupScope.DeclineExpiredUpdates = true true
clean cleanupScope.CleanupObsoleteUpdates = true true
clean cleanupScope.CompressUpdates = true true
clean cleanupScope.CleanupObsoleteComputers = true true
clean cleanupScope.CleanupUnneededContentFiles = true true
clean cleanupManager = ws wsus.GetCleanupManager();
$cleanupManager.PerformCleanup($cleanupScope);
# Script FINE
L’output dello script guardato come segue, quando ho eseguito la prima volta:
C:\scripts>powershell -file “WSUSCleanup.ps1”
SupersededUpdatesDeclined : 0
ExpiredUpdatesDeclined : 0
ObsoleteUpdatesDeleted : 3
UpdatesCompressed : 1953
ObsoleteComputersDeleted : 0