
A volte i batch non trovano i programmi da rimuovere
Il titolo non è del tutto esatto, in realtà nell’ultimo semestre sono aumentati i tool che una volta installati sono visibili nella lista programmi dal pannello di controllo, ma completamente invisibili se cercati con le cmdlet di Powershell o semplicemente con i comandi batch della command DOS.
Le motivazioni sono svariate ed in parte legate alla struttura del sistema operativo e a come queste applicazioni ci si integrano.
Tra i casi più recenti troviamo CCleaner e 7-Zip, tuttavia anche alcuni componenti di Adobe riportano l’autore, ma non i restanti dati dell’applicazione. In aggiunta possiamo trovare mancanti anche diverse applicazioni di giochi preinstallati.
Per chi come me utilizza dei sistemi di gestione automatica dei sistemi la situazione diventa sgradevole, tanto da ricorrere a soluzioni alternative da dare in pasto al mio Autotask Endpoint Managment (AEM).
Le soluzioni alternative
La soluzione alternativa si presenta abbastanza semplice, basta pensarci un attimo.
Tutti programmi installati, o quasi tutti, hanno nella propria cartella di installazione un eseguibile preposto per la cancellazione del programma, per creare un batch è quindi sufficiente localizzare questo file e verificare se ha delle opzioni usabili in riga di comando e che ne permettano la rimozione in modo silenzioso, ovvero senza chiedere conferma o istruzioni all’utente, non dimentichiamo che vogliamo creare una procedura automatica.
Nel caso dei due programmi già citati, CCleaner e 7-Zip, abbiamo quanto serve.
CCleaner
Percorso di installazione: c:\Program Files\CCleaner
Eseguibile di rimozione: uninst.exe
7-Zip
Percorso di installazione: c:\Program Files\7-Zip
Eseguibile di rimozione: uninstaller.exe
Per entrambi è possibile avviare la disinstallazione in modo silenzioso dando l’opzione /S.
Il percorso potrebbe essere diverso nel caso di installazione della versione a 32 bit del programma, in tal caso li troveremo in C:\Program Files (x86).
Automatizzare la rimozione
A questo punto non resta che creare un semplice batch in cui comunicare al sistema operativo che deve rimuovere il programma, per farlo ci servono solo due semplici istruzioni.
CD c:\Program Files\CCleaner
uninst.exe /S
oppure
CD c:\Program Files\7-Zip
uninstaller.exe /S
Chiaramente per un sistema automatico è un po’ troppo stringato, quindi andrei a mettere qualche controllo per determinare almeno l’esistenza del percorso ed eseguire la rimozione solo se la cartella esiste, questo per evitare l’esecuzione di un uninstaller in un percorso sbagliato.
Il batch diventa pertanto.
echo off
IF NOT EXIST “C:\Program Files\CCleaner” GOTO NOPROGDIR
cd C:\Program Files\CCleaner
uninst.exe /S
goto END
: NOPROGDIR
echo Cartella non trovata
:END
La strategia è quindi applicabile anche ad altri applicazioni di uso quotidiano.
Perché rimuovere i tool?
Per abitudine con diversi programmi preferisco procedere con una disinstallazione della vecchia versione prima di applicare quella nuova, dove possibile salvando le configurazioni esistenti e applicandole alla nuova versione.
Il tutto diventa più fluido e si evitano problemi successivi, talvolta accade che l’aggiornamento di un programma di tutti i giorni conservi dei file non compatibili e tali da limitare le funzionalità dell’applicazione.
Usando un sistema automatizzato i due passaggi, disinstallazione e installazione, sono eseguite dagli agenti e non diventano un ulteriore investimento di tempo.
Esiste anche il caso più banale in cui le applicazioni non sono più necessarie ed è inutile tenerlo in giro per il computer ad occupare spazio e magari altre risorse.
Buona caccia ai fantasmi!
Se sei interessato ad approfondire questi contenuti o ad avere nella tua aziende questi strumenti o i prodotti menzionati, contattaci attraverso la pagina di contatto di questo sito, o se preferisci cercami attraverso la pagina FaceBook o il mio profilo Linkedin.
Per essere informato sui nuovi articoli e contenuti puoi anche iscriverti alle nostre newsletter.