Quando si prepara un computer nuovo, dopo l’installazione di Windows vanno aggiunti un numero imprecisato di programmi, però può sempre capitare di dimenticarsi di avviare l’installazione di qualcosa e, soprattutto, stancarsi di fare click su ogni richiesta che appare. Girovagando per il Web ho trovato su Reddit, a cui riconosco i meriti iniziali, uno script che permette di installare in maniera silenziosa, cioè senza intervento dell’utente, tutti quei programmi che prevedono questa opzione, mentre per gli altri comparirà la normale procedura d’installazione. In questo modo ridurrete il numero di conferme da dare e sarete sicuri di installare tutti i software che vi servono.

Nel titolo ho scritto di installare quasi tutti i programmi perché l’installazione silenziosa non permette di personalizzarla, magari scegliendo il percorso d’installazione o escludendo dei componenti del programma, quindi questo tipo di software andrebbero installati a parte a meno di riuscire a creare un file di comandi, un .cmd, che permetta l’installazione personalizzata.

Procedura

Create una cartella, nel mio caso c:\test, che contenga tutti gli eseguibili, i file msi e cmd che dovete installare.

Rispetto allo script iniziale io ho aggiunto la parte relativa all’installazione tramite un file di comandi .cmd, i programmi che dovete installare tramite questo cmd vanno messi in una cartella a parte, non nella cartella c:\test, nel file cmd va indicato il percorso dove trovarli, va bene anche un c:\test\cmd_da_installare, l’importante e che non siano nella cartella principale.

Se il programma d’installazione è composto da diversi file vanno copiati tutti nella cartella c:\test.

Una volta avviato lo script si aprirà la finestra d’installazione del programma a cui dovrete dare le necessarie conferme.

Come installare (quasi) tutti programmi tramite PowerShell

Oppure procederà a installarlo in maniera silenziosa senza chiedervi niente.

Come installare (quasi) tutti programmi tramite PowerShell

Lo script, che trovate allegato all’articolo, è personalizzabile nel percorso della cartella, c:\test, dove copiate tutti i programmi da installare.

  • # Installazione silenziosa dei programmi exe, msi e cmd, io ho aggiunto i file cmd, i meriti iniziali vanno a
  • # https://www.reddit.com/r/PowerShell/comments/17ssn5l/would_like_a_writehost_to_tell_me_as_my_script/
  • # Potete cambiare a piacimento la cartella, io ho messo c:\test, dove copiare i file che dovete installare.
  • cd C:\test
  • #vars
  • $msi = @(gci -Path C:\test | Where {$_.Name -like "*.msi"})
  • $exe = @(gci -Path C:\test | Where {$_.Name -like "*.exe"})
  • $cmd = @(gci -Path C:\test | Where {$_.Name -like "*.cmd"})
  • $msicounter = 1
  • $execounter = 1
  • $cmdcounter = 1
  • #Script Instructions
  • foreach ($file in $msi) {
  • Write-Progress -Activity "Installazione file MSI" -Status "$($file.Name) in corso..." -PercentComplete (($msicounter / $msi.Count) * 100)
  • saps $file /quiet -Wait
  • $msicounter++
  • }
  • foreach ($file in $exe) {
  • Write-Progress -Activity "Installazione file exe" -Status "$($file.Name) in corso..." -PercentComplete (($execounter / $exe.Count) * 100)
  • saps $file /S -Wait
  • $execounter++
  • }
  • foreach ($file in $cmd) {
  • Write-Progress -Activity "Installazione file cmd" -Status "$($file.Name) in corso..." -PercentComplete (($cmdcounter / $cmd.Count) * 100)
  • saps $file /quiet -Wait
  • $cmdcounter++
  • }