Del perché non vogliate o non possiate aggiornare il vostro sistema a Windows 10 non dovete certo spiegarlo a me. Ciò che mi è stato chiesto da più persone, è come bloccare un aggiornamento forzato a Windows 10 nel momento in cui compare l’icona del processo GWX (Get Windows X) quella con l’icona di Windows 10, vicino l’orologio nella tray:
Quell’icona compare nel momento in cui Windows Update installa nel vostro sistema un particolare KB ritenuto importante, per la precisione si tratta del KB3035583, che a sua volta procurerà tutti i file necessari all’aggiornamento del sistema (occupando spazio disco del quale voi inizialmente non vi accorgerete se non sarete particolarmente attenti). Come, perché, come rimuoverlo o come impedire che ricompaia, fa parte di un ben più completo articolo comparso ormai molto tempo fa su AskVG, che vi consiglio di leggere (in inglese, nda): askvg.com/how-to-remove-get-windows-10-app-and-its-icon-from-taskbar.
Ci sono casi in cui, però, per un motivo o l’altro, non è attualmente possibile aggiornare a Windows 10: una incompatibilità con una particolare applicazione ormai non più aggiornata, un driver mancante, semplice diffidenza verso l’aggiornamento della GUI (comunque tornata molto più decente rispetto a quella proposta con Windows 8, nda), un set di risorse che seppur considerate valide per l’upgrade, non convincono fino in fondo l’utente finale che preferisce tenersi una macchina tutto sommato veloce (anche se non troppo) senza rischiare di appesantirla ulteriormente.
Disinstallare l’aggiornamento e in seguito nasconderlo da quelli proposti è sicuramente il metodo più logico e lineare, se però avete a che fare con più utenti difficili da controllare, che magari fanno clic su qualsiasi cosa senza neanche accertarsi di cosa si tratti, credo che la soluzione migliore sia quella di rimuovere ogni traccia di GWX sulla macchina e fare qualcosa per evitare che ricompaia. Da qui nasce il lavoro svolto che propongo qui di seguito, lo rendo pubblico perché credo possa tornare utile un po’ a chiunque.
La soluzione, a mezzo batch
Al solito, non c’è nulla di meglio che automatizzare l’operazione di rimozione e prevenzione di una futura richiesta di upgrade tramite qualche riga di batch. Pubblicato su Gist, ve lo propongo qui di seguito. Saltatelo a piè pari e leggete in coda cosa fa, se non volete fermarvi sui tecnicismi:
@echo off | |
REM Kill GWX (http://gioxx.org/tag/killgwx) | |
REM GSolone 2015 | |
REM Ultima modifica 06/11/15 | |
:: BatchGotAdmin | |
:------------------------------------- | |
REM --> Check for permissions | |
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system" | |
REM --> If error flag set, we do not have admin. | |
if '%errorlevel%' NEQ '0' ( | |
echo Richiedo utente amministratore... | |
goto UACPrompt | |
) else ( goto gotAdmin ) | |
:UACPrompt | |
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs" | |
set params = %*:"="" | |
echo UAC.ShellExecute "cmd.exe", "/c %~s0 %params%", "", "runas", 1 >> "%temp%\getadmin.vbs" | |
"%temp%\getadmin.vbs" | |
del "%temp%\getadmin.vbs" | |
exit /B | |
:gotAdmin | |
cls | |
echo. | |
echo ******************************************************* | |
echo Kill GWX (Get Windows X) per Windows 7 / 8 | |
echo Versione 0.2 - Ultima modifica nov.15 | |
echo http://gioxx.org/tag/killgwx | |
echo ******************************************************* | |
echo. | |
echo ATTENZIONE: | |
echo SALVARE IL PROPRIO LAVORO PRIMA DI CONTINUARE | |
echo; | |
pause | |
:ChiusuraProcessi | |
echo Verifica e chiusura processo GWX ... | |
echo; | |
taskkill /IM GWX.EXE /F | |
if errorlevel 1 echo Processo gia' chiuso, procedo. | |
echo; | |
:BackupChiaveRegistro | |
echo Backup e modifica delle chiavi del registro di sistema ... | |
echo; | |
REM Esporto, per sicurezza, la chiave "Windows" (sotto Policies\Microsoft) attuale | |
if not exist C:\reg_WindowsExp.bak REG EXPORT HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows C:\reg_WindowsExp.bak | |
:ModificaRegistroGWX | |
REM Debug: si potrebbe verificare l'esistenza delle chiavi di registro, quindi inserirle in caso di risposta negativa. | |
REM Io invece le scrivo e le sovrascrivo anche se dovessero già esistere, così da essere certi di bloccare i | |
REM nuovi tentativi di installazione di Windows 10. (vedi comunque righe di debug qui di seguito) | |
REM REG QUERY HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\GWX | |
REM if %ERRORLEVEL% EQU 1 REG ADD HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows /d GWX /f | |
REG ADD HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows /d GWX /f | |
REG ADD HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\GWX /v DisableGWX /t REG_DWORD /d 1 /f | |
REG ADD HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows /d WindowsUpdate /f | |
REG ADD HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate /v DisableOSUpgrade /t REG_DWORD /d 1 /f | |
REG ADD HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows /d OSUpgrade /f | |
REG ADD HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\OSUpgrade /v AllowOSUpgrade /t REG_DWORD /d 0 /f | |
REG ADD HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\OSUpgrade /v ReservationsAllowed /t REG_DWORD /d 0 /f | |
:DisinstallaKB | |
echo; | |
echo Verifica installazione GWX e disinstallazione ... | |
echo Attenzione: RIAVVIO OBBLIGATORIO AL TERMINE (in caso di disinstallazione) | |
echo; | |
wmic qfe get hotfixid | find "KB3035583" | |
if %errorlevel% == 1 goto GWX1 | |
if %errorlevel% == 0 goto GWX0 | |
:GWX0 | |
echo; | |
echo Rilevato KB3035583, procedo con la disinstallazione ... | |
wusa /uninstall /kb:3035583 /quiet /forcerestart | |
goto END | |
:GWX1 | |
echo; | |
echo Pacchetto GWX non rilevato, cerco e provo a eliminare eventuali cartelle dati residue ... | |
if exist C:\Windows\System32\GWX rd /S /Q C:\Windows\System32\GWX | |
if exist C:\Windows\SysWOW64\GWX rd /S /Q C:\Windows\SysWOW64\GWX | |
if exist C:\$WINDOWS.~BT rd /q /s C:\$WINDOWS.~BT | |
if exist C:\$Windows.~WS rd /q /s C:\$Windows.~WS | |
echo Modifica del sistema terminata. | |
echo Premi un qualsiasi tasto per uscire dal programma. | |
pause > NUL | |
:-------------------------------------- | |
:END |
Potete scaricare il batch già pronto, semplicemente puntando all’indirizzo dropbox.com/s/8qqs8fboftocnrp/KillGWX.bat?dl=1
Lo script deve essere necessariamente lanciato come amministratori locali o di dominio (va a modificare delle chiavi di registro che l’utente senza privilegi non può toccare), per questo motivo si occuperà lui stesso di verificare ed eventualmente chiedervi di essere eseguiti con privilegi più elevati.
A quel punto il susseguirsi di operazioni è semplice:
- esporto l’intera chiave di registro che andrò a ritoccare così da poter ripristinare un backup in caso di errori / problemi,
- inserisco nuove chiavi nel registro che dovrebbero andare a bloccare ogni nuovo tentativo di installazione di GWX (quindi di richiesta di upgrade a Windows 10),
- verifico l’esistenza del KB3035583 all’interno delle patch installate nel sistema e, nel caso in cui questo sia presente, lo disinstallo, riavviando poi la macchina al termine dell’operazione. Occhio: questo passaggio è obbligato dal batch, la macchina verrà riavviata in maniera autonoma, è quindi importante aver salvato il proprio lavoro prima di procedere!
Pulizia del sistema (anche a mano)
Una volta che il sistema tornerà operativo, potrete nuovamente lanciare lo script per andare a fare pulizia delle cartelle che sono state appositamente create per ospitare i file necessari all’installazione del nuovo sistema operativo di Microsoft. Occhio però, se anche solo uno dei file contenuti in queste cartelle è utilizzato dal sistema operativo attuale, potreste notare un errore a video molto simile a quello che mi ha fatto notare un amico che ha già testato il batch:
Accesso negato alla cartella C:\$Windows.~BT Impossibile eliminare C:\$Windows.~BT\Sources\SafeOS\SafeOS.Mount, il file è utilizzato dal sistema
Poco male, il metodo per pulire “lo sporco più sporco” esiste, e può essere acceduto comodamente dalla GUI di Windows. Aprite “Computer” (da Start, oppure dall’icona che potreste avere sul Desktop), quindi fate clic con il tasto destro sul disco fisso principale del PC (quello che contiene Windows) e scegliete Proprietà. Troverete (nella finestra che comparirà a video) la voce “Pulizia disco“. A finestra caricata occorrerà fare clic su “Pulizia file di sistema“, che permetterà di accedere a una pulizia più approfondita del disco, comprensiva di file che generalmente vengono gestiti in autonomia da Windows. Portate pazienza, l’operazione di calcolo dello spazio recuperabile impiegherà un po’ più tempo rispetto alla prima volta, anche su dischi particolarmente veloci.
Noterete però, una volta aperta la finestra, che con un colpo di scroll verso il basso si arriverà alla voce relativa ai file già scaricati sul disco fisso, pronti a installare il nuovo sistema operativo di casa Redmond:
Abilitate il segno di spunta su ogni opzione desiderata (vanno bene tutte, ma vi consiglio di non eliminare i file relativi a Windows Update, questo vi permetterà di disinstallare una patch di sistema nel caso in cui contenga errori e si necessitasse di tornare “indietro”) e confermate al termine l’operazione con un Ok, che lascerà così partire la pulizia del sistema, anche di quei file che precedentemente vi hanno dato il due di picche tramite il mio batch.
Questo è quanto vi basterà per tenere lontano il vostro PC da un aggiornamento al nuovo sistema operativo di Microsoft. Vi ricordo che fino al 29 luglio del prossimo anno sarà possibile scaricare gratuitamente la vostra copia di Windows 10 e che potrete farlo in qualsiasi momento semplicemente scaricando il Media Creation Tool di Microsoft, ma per questo vi rimando all’ottimo articolo scritto da Michele Nasi su ilSoftware qualche tempo fa: ilsoftware.it/articoli.asp?tag=Come-far-apparire-l-icona-per-l-aggiornamento-a-Windows-10_12330.
Prima di chiudere, un doveroso ringraziamento a Diego per avermi fatto da cavia (oltre quanto già non abbia fatto io!).
Buon lavoro :-)
L'articolo potrebbe non essere aggiornato
Questo post è stato scritto più di 5 mesi fa, potrebbe non essere aggiornato. Per qualsiasi dubbio ti invito a lasciare un commento per chiedere ulteriori informazioni! :-)