Aggiornamento automatici di windows con PowerShell

Attiviamo gli aggiornamenti automatici di windows direttamente da powershell per autolatizzare gli aggiornamenti evitando ogni iterazione con l'utente

Il comando PowerShell Install-WindowsUpdate -AcceptAll -AutoReboot è utilizzato per installare tutti gli aggiornamenti di Windows disponibili, con le seguenti opzioni:

  • Install-WindowsUpdate: questo comando usa il modulo PSWindowsUpdate per installare gli aggiornamenti
  • -AcceptAll: accetta tutti gli aggiornamenti disponibili senza chiedere all’utente alcuna iterazione
  • -AutoReboot: riavvia automaticamente il sistema se necessario dopo installati gli aggiornamenti.

Questo è utile per automatizzare l’installazione degli aggiornamenti senza avere bisogno di iterazione con l’utente.

Durante l’esecuzione del comando potresti ricevere degli errori, come ad esempio:

The term ‘Install-WindowsUpdate’ is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

Questo può significare che devi usare PowerShell version 5.1 (o superiori) per eseguire il comando e inoltre devi installare NuGet prima di eseguire Install-WinowsUpdate

Qui puoi trovare la procedura per installare PowerShell version 5.1.
Per installare NuGet devi eseguire questo comando:

Install-PackageProvider -Name NuGet -Force

Anche questo comando potrebbe dare degli errori come questi:

  • MSG:UnableToDownload «https://go.microsoft.com/fwlink/?LinkID=627338&clcid=0x409» «»
  • The request was aborted: Could not create SSL/TLS secure channel.

Nel caso si presenti uno di questi eventi, verifica la tua connesione ad internet (o l’eventuale configurazione del proxy) e successivamente esegui questi due comandi:

Invoke-WebRequest "https://go.microsoft.com/fwlink/?LinkID=627338&clcid=0x409"
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

Invoke-WebRequest verifica a connessione http verso il path che contiente il pacchetto da installare (usa il path corretto come opzione), Se questo comando fallisce o c’è un problema di connettività o c’è un problema ssl/tls. Il secondo comando è utile per risolvere il problema relativo al tls/ssl ([Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12)

Quindi, una volta risolti i problemi di connettività, esegui questi comand per completare tutta l’installazione:

Install-PackageProvider -Name NuGet -Force
Install-Module -Name PSWindowsUpdate -Force
Import-Module PSWindowsUpdate
Get-Command -Module PSWindowsUpdate
Install-WindowsUpdate -AcceptAll -AutoReboot