WSUS creazione report per computer con aggiornamenti in errore
WSUS è un servizio essenziale per mantenere aggiornata l’infrastruttura informatica e per avere il polso della situazione degli aggiornamenti. Sebbene WSUS abbia usa serie di report che possono essere utilizzati per monitorare come sono stati distribuiti gli aggiornamenti e quali sono i computer in errore una funzionalità utile è quella di avere un report che elenchi i computer con aggiornamenti in errore indicando informazioni quali versione OS e hardware, numero degli aggiornamenti falliti, scaricati, installati, le informazioni relative all’esito e alla data e l’elenco degli aggiornamenti falliti.
Per generare tale report e inviarlo volendo tramite mail è comunque possibile utilizzare PowerShell utilizzando sia i cmdlets per WSUS disponibili a partire da Windows Server 2012 (a riguardo si veda Windows Server Update Services (WSUS) Cmdlets in Windows PowerShell) sia i metodi della classe Microsoft.UpdateServices.Administration.AdminProxy che implementa l’interfaccia IUpdateServer.
Scendendo nel dettaglio tramite il cmdlet Get-WsusComputer è possibile ottenere informazioni sui computer quali FullDomainName,IP, Hardware, OS, esito e data dell’ultima sincronizzazione. Mentre per ottenere informazioni relative a numero di update falliti, non installati, pendenti, scaricati e installati occorre utilizzare i metodi:
- Microsoft.UpdateServices.Administration.IUpdateServer.GetSummariesPerComputerTarget per ottenere i computer con aggiornamenti in errore
- Microsoft.UpdateServices.Administration.IUpdateServer.GetComputerTargets e Microsoft.UpdateServices.Administration.IComputerTarget.GetUpdateInstallationInfoPerUpdate per ottenere l’elenco degli aggiornamenti falliti
Ho realizzato uno script PowerShell da eseguire sul server WSUS per ottenere un report con un elenco elenchi i computer con aggiornamenti in errore che consente tramite parametri di inviare il report via mail e di eseguire sul computer un test di connessione tramite l’invio di pacchetti di richieste echo (ovvero inviando ping).
Lo script è disponibile nel mio repository GitHub nella sezione dedicata a PowerShell, di seguito il link diretto https://github.com/ermannog/PowerShell/tree/master/Get-WSUSReportComputersInError.
Di seguito invece un esempio del report e della mail generata:
[Update 01]
Nella versione 1.2 dello script è stato aggiunta una sezione al report per visualizzare gli errori registrati dal server WSUS intercorsi sul computer negli ultimi 7 giorni.
[Update 02]
Nella versione 1.3 sono state apportate le seguenti migliorie:
- L’ordine dei computer con aggiornamenti falliti è stato modifica per visualizzare i computer in ordine decrescente rispetto ai valori Update failed, Update Unknown e Update not installed
- Il valore Last sync time viene colorato in magenta se la data è antecedente di 7 alla data odierna
[Update 03]
Nella versione 1.4 è stato corretto un errore per gestire correttamente il caso in cui non vengano rilevati computer con aggiornamenti in errore.
[…] durante la stesura dello script Get-WSUSReportComputersInError.ps1 di cui ho parlato nel post WSUS creazione report per computer con aggiornamenti in errore, in tale script avevo infatti utilizzato la direttiva Set-StrictMode -Version Latest, ma in una […]