Come automatizzare gli aggiornamenti di Windows utilizzando PowerShell: breve panoramica
La gestione delle patch è un aspetto cruciale dell’amministrazione dell’infrastruttura IT, proprio come il backup delle workstation Windows. Con la giusta soluzione di gestione delle patch, è possibile migliorare il proprio sistema testando o installando gli ultimi aggiornamenti software e le patch. Le patch sono considerate soluzioni temporanee per i problemi esistenti tra le versioni complete del software. Se la gestione delle patch viene eseguita in modo efficace, è possibile affrontare tempestivamente le vulnerabilità del proprio sistema e mitigare qualsiasi potenziale minaccia.
Windows offre una propria soluzione di gestione delle patch: Windows Update. Tuttavia, molti amministratori IT continuano a ritenere che il processo di gestione delle patch sia troppo complesso e dispendioso in termini di tempo. Inoltre, gli aggiornamenti di sistema possono influire sul flusso di lavoro di produzione, poiché spesso vengono avviati automaticamente durante l’orario di lavoro. Con i cmdlet di PowerShell è possibile automatizzare gli aggiornamenti di Windows, risparmiando tempo e fatica.
Questo post del blog descrive come utilizzare PowerShell per installare gli aggiornamenti di Windows e include un elenco di comandi PowerShell utili per automatizzare il processo di gestione delle patch. L’applicazione delle patch può ridurre il rischio di bug o vulnerabilità che compromettono il sistema.
Che cos’è PSWindowsUpdate?
Per semplificare e velocizzare il processo di gestione delle patch di Windows, è possibile utilizzare il modulo PSWindowsUpdate sviluppato da Michal Gajda. Questo modulo è disponibile al pubblico e può essere scaricato gratuitamente da PowerShell Gallery. Il requisito obbligatorio è che il computer deve eseguire versioni del sistema operativo Windows a partire da Vista o Windows Server 2008. Inoltre, è necessario disporre di PowerShell 2.0 o versioni successive.
Con PSWindowsUpdate, è possibile identificare se sono disponibili aggiornamenti di Windows per il computer. Inoltre, questo modulo consente di gestire centralmente gli aggiornamenti di Windows su vari server e stazioni di lavoro Windows. In questo modo, è possibile controllare in remoto quali aggiornamenti vengono installati, rimossi o nascosti.
Come automatizzare gli aggiornamenti di Windows con PowerShell
Di seguito, descriveremo il processo di configurazione di PSWindowsUpdate, compreso come scaricare e installare il modulo, nonché come verificare i comandi che possono aiutare ad automatizzare gli aggiornamenti di Windows.
Come installare PSWindowsUpdate
Per automatizzare in modo efficace la gestione delle patch di Windows, è necessario innanzitutto installare il modulo PSWindowsUpdate sul computer. A tal fine, aprire un prompt PowerShell con privilegi elevati e immettere il comando seguente:
Install-Module -Name PSWindowsUpdate
Dopo aver eseguito questo comando, verrà chiesto se si desidera installare il modulo specificato da PSGallery. Selezionare Yes se si desidera continuare e accettare tutte le modifiche.

Una volta installato il modulo, è necessario assicurarsi di poter accedere in remoto ad altri computer. In questo modo, dovrebbe essere possibile installare gli aggiornamenti di Windows sui computer remoti, consentendo di dedicare il minimo tempo e sforzo. Affinché il modulo PSWindowsUpdate funzioni con i computer remoti, è necessario salvarlo sul proprio computer e condividerlo in rete.
Nel caso in cui altri server siano in grado di importare e implementare questo modulo, è possibile impostare la gestione automatizzata delle patch di Windows. A tal fine, è necessario eseguire il seguente cmdlet:
Save-Module -Name PSWindowsUpdate -Path
Qui è necessario definire il –Path specificando dove si desidera archiviare il modulo PSWindowsUpdate.
Come utilizzare PSWindowsUpdate
Avanti, imparerete come utilizzare questo modulo per automatizzare gli aggiornamenti di Windows con i cmdlet di PowerShell. Questo è un grande vantaggio per gli amministratori IT che devono eseguire il processo di gestione delle patch su macchine Server Core senza GUI. Con l’uso di questi cmdlet, è possibile ridurre al minimo la complessità della gestione e rendere il processo più semplice e meno soggetto a errori.
Per ottenere un elenco completo degli aggiornamenti Windows disponibili, eseguire il seguente comando PowerShell:
Get-WindowsUpdate
Sullo schermo dovrebbe apparire il seguente output:
Grazie a queste informazioni, sarà possibile sapere con certezza quali software o applicazioni devono essere aggiornati. Successivamente, puoi installare tutti gli aggiornamenti inserendo il comando riportato di seguito. Inoltre, aggiungendo il parametro –AutoReboot , puoi assicurarti che il sistema si riavvii automaticamente una volta installato l’aggiornamento.
Get-WUInstall -AcceptAll –AutoReboot
Se non si desidera avviare il riavvio (per non interrompere il flusso di lavoro di produzione), è possibile eseguire il seguente cmdlet:
Get-WUInstall -AcceptAll –IgnoreReboot
Sullo schermo è possibile vedere lo stato di avanzamento del processo di gestione delle patch, nonché l’elenco completo degli aggiornamenti e il loro stato attuale.
Al termine del processo di installazione, nella console PowerShell verrà visualizzato il seguente messaggio: “È obbligatorio riavviare il sistema, ma è possibile farlo manualmente”. Pertanto, è comunque obbligatorio riavviare il sistema, ma è possibile farlo nel momento più adatto alle proprie esigenze.
Se desideri scaricare solo un aggiornamento specifico, puoi aggiungere il parametro –KBArticleID al cmdlet di PowerShell. Non dimenticare di specificare il numero dell’articolo KB per scaricare la patch corretta. Ad esempio, desidero installare Windows Malicious Software Removal Tool x64 e Security Intelligence Update for Windows Defender Antivirus. Il comando PowerShell appropriato dovrebbe apparire come segue:
Get-WUInstall -KBArticleID KB890830, KB2267602 –AcceptAll
Dopo aver eseguito questo comando, sul mio computer saranno installati solo due dei suddetti aggiornamenti.
Panoramica dei comandi PSWindowsUpdate
Se ti stai chiedendo quale cmdlet di PowerShell può funzionare con il modulo PSWindowsUpdate, digita il seguente comando e premi Inserisci:
Get-Command –module PSWindowsUpdate
Qui puoi vedere un elenco completo dei comandi del modulo.

Vediamo come funzionano alcuni di questi comandi.
1. Il cmdlet Get-WUHistoryconsente di visualizzare la cronologia degli ultimi aggiornamenti. Dopo aver eseguito questo comando, sullo schermo verrà visualizzato un output simile al seguente.
2. Il cmdlet successivo è Get-WUInstallerStatus, che consente di verificare lo stato del servizio Windows Installer. Qui puoi controllare se l’installatore è attivo/a o meno. Il risultato di questa operazione può essere il seguente:
3. Eseguendo il cmdlet Get-WURebootStatus è possibile verificare se è necessario riavviare il sistema affinché un aggiornamento specifico venga applicato completamente.
4. Con il cmdlet Get-WUServiceManager è possibile verificare l’origine degli aggiornamenti di Windows.
Come si può vedere, l’ultima colonna mostra l’origine dell’aggiornamento (ad esempio Windows Update, DCat Flighting Prod, ecc.).
5. È possibile nascondere determinati aggiornamenti dall’elenco per evitare di installarli sul computer. A tal fine, è necessario eseguire il comando Hide-WindowsUpdate in cui è possibile specificare l’ID degli articoli KB che si desidera nascondere. L’esempio seguente mostra come nascondere l’aggiornamento KB2267602 da elenco:
$HideList = "KB2267602"
Hide-WindowsUpdate -KBArticleID $HideList –Hide
Prima di apportare qualsiasi modifica, verrà richiesto di confermare la selezione. Digitare Y per nascondere l’articolo della Knowledge Base.

Tuttavia, se si desidera ottenere l’elenco degli aggiornamenti nascosti, è possibile eseguire il cmdlet riportato di seguito.
Nella colonna stato è possibile vedere la lettera H che indica che l’aggiornamento è stato nascosto correttamente. Pertanto, la prossima volta che si esegue il comando Get-WUInstall , l’aggiornamento selezionato verrà automaticamente escluso dall’elenco degli aggiornamenti disponibili.
Se desideri ripristinare le modifiche, puoi utilizzare il seguente cmdlet nella console PowerShell:
Hide-WindowsUpdate -KBArticleID $HideList -Hide:$false
Ancora una volta, ti verrà chiesto di confermare le modifiche digitando Y.

Come puoi vedere, la lettera H non è più inclusa nello stato di aggiornamento, il che significa che questo aggiornamento di Windows non è più nascosto e può essere scaricato sul tuo computer.
6. Un’altra opzione di configurazione disponibile è quella di rimuovere gli aggiornamenti installati sul computer. A tal fine, è possibile utilizzare il cmdlet Remove-WindowsUpdate e digitare l’ID dell’articolo KB che si desidera disinstallare dal computer. Ad esempio:
Remove-WindowsUpdate -KBArticleID KB4519573 –IgnoreReboot
Aggiungendo il parametro –IgnoreReboot si garantisce che il computer non si riavvii automaticamente. Una volta disinstallato l’aggiornamento, è possibile riavviare il computer in un secondo momento.
7. Infine, ma non meno importante, è possibile eseguire la scansione degli aggiornamenti Windows disponibili su un computer remoto utilizzando il cmdlet Get-WUList .
Get-WUList –ComputerName Server5
Affinché questo cmdlet funzioni, è necessario installare anche il modulo PSWindowsUpdate su un computer remoto. In questo modo, è possibile automatizzare gli aggiornamenti Windows per più computer da un unico pannello di controllo. Con PSWindowsUpdate, il processo di gestione delle patch viene eseguito in modo semplice ed efficiente.
Inoltre, è possibile ridurre il carico di lavoro amministrativo che gli amministratori IT potrebbero dover sostenere durante l’applicazione delle patch al sistema.
Conclusioni
Il modulo PSWindowsUpdate è stato sviluppato per rendere il processo di gestione delle patch più semplice ed efficiente. Automatizzando l’installazione degli aggiornamenti, è possibile garantire che il sistema venga aggiornato regolarmente, riducendo così al minimo il rischio di guasti del sistema e violazioni della sicurezza. Le patch vengono sviluppate principalmente per risolvere problemi o vulnerabilità rilevati all’interno di un programma. Tuttavia, la gestione regolare delle patch non può garantire una protezione completa dell’intero ambiente di produzione.
A tal fine, è necessario utilizzare una soluzione completa per la protezione dei dati che offra backup e ripristino del sito per ambienti fisici, virtuali e cloud. Con NAKIVO Backup & Replication, è possibile proteggere i dati e le applicazioni più critici su più piattaforme, garantire il ripristino in qualsiasi circostanza e ridurre i costi di protezione dei dati.




