Se anche voi possedete una piattaforma di aggiornamento centralizzato per i client dell’azienda o -più semplicemente- volete sopprimere quella notifica di aggiornamento tramite GPO (su più PC in dominio) o script (uno o più PC non in dominio) questo è il “come procedere“.
Giusto per precisare: in entrambi i casi si tratta di mettere mano ad una chiave di registro perché è grazie a quella che Java fa partire la verifica e la notifica di aggiornamento, i due differenti metodi arrivano allo stesso obiettivo.
GPO
Come già detto, occorrerà modificare una chiave di registro di Windows per poter terminare ogni controllo e ogni notifica di aggiornamento del prodotto. Accedete al vostro GPO Manager e navigate fino a:
- Computer Configuration
- Preferences
- Windows Settings
- Registry
- Windows Settings
- Preferences
Ora occorrerà fare clic con il tasto destro nella parte di destra (in un qualsiasi punto vuoto) e selezionare New / Registry Item. A questo punto vi verranno chiesti i dettagli, questi per la precisione:
- Action: Update
- Hive: HKEY_LOCAL_MACHINE
- Key Path: SOFTWARE\JavaSoft\Java Update\Policy
- Value name: EnableJavaUpdate
- Value type: REG_DWORD
- Value data: 00000000
Quella trafila dopo “Value data” corrisponde a 8 zeri e questo è il risultato in immagine:
Facendo clic su OK si tornerà alla finestra principale del registro e noterete la vostra nuova chiave nell’elenco:
Assegnate la policy appena creata alle OU che desiderate (o all’intero dominio / Authenticated Users) e attendete che i vari PC si adeguino, la vostra salute mentale e sopportazione verso gli utilizzatori ne troverà giovamento e vi ringrazierà.
Se volete verificare il corretto funzionamento della GPO vi basterà andare in Pannello di Controllo, fare doppio clic sull’icona di Java e verificare che sia sparita la tab relativa all’aggiornamento del software.
Attenzione: la soluzione proposta è valida per Java 32 bit installato su un Windows a 32 bit oppure Java 64 bit installato su un Windows a 64 bit. Se volete adattarla ad un Java 32 bit installato su un sistema a 64 potete dare un’occhiata a questo ottimo articolo: gpyall.com/archives/how-do-i-disable-32-bit-java-updates-on-64-bit-windows.
VBS (locale o in rete)
Volete evitare di mettere mano al registro ma vorreste replicare quanto spiegato qui sopra? La macchina non appartiene ad un dominio o ne avete più di una all’interno dell’ufficio e con un amministratore identico su tutte volete operare la modifica comodamente dalla vostra postazione? Qualche riga di codice VBScript può aiutarvi a portare a termine la semplice missione.
Per la singola macchina (o magari per più macchine se volete portarvi in giro una chiave USB con lo script a bordo) vi propongo qualche riga di codice che una volta eseguita opera la modifica di registro portando a termine rapidamente il tutto:
'JAVA Update Disabler (LOCAL x86) | |
'GSolone 2013 | |
' | |
Set WshShell = CreateObject( "WScript.Shell" ) | |
Set Shell = CreateObject( "WScript.Shell" ) | |
Shell.RegWrite "HKLM\SOFTWARE\JavaSoft\Java Update\Policy\EnableJavaUpdate", 0, "REG_DWORD" | |
'DEBUG LETTURA NUOVO VALORE | |
'a = WshShell.RegRead ( "HKLM\SOFTWARE\JavaSoft\Java Update\Policy\EnableJavaUpdate" ) | |
'Wscript.Echo "JavaUpdate value is ",a, " (0 disabled, 1 enabled)." |
Ho volutamente commentato le righe appartenenti al “paragrafo” DEBUG perché servono a mostrare a video il valore della chiave di registro dopo aver lanciato lo script. Togliete l’apostrofo di commento alle ultime due righe (e solo a quelle) nel caso in cui vogliate una conferma dell’operazione.
Trovate questo script e qualsiasi eventuale nuova modifica su Gist: gist.github.com/gioxx/166afd4e286b30482bf8
Qualche differenza rispetto allo script appena spiegato la trovate invece in quello per operare da remoto. Questo codice, una volta eseguito, vi chiederà il nome della macchina sulla quale collegarsi e –ammesso che le credenziali in uso siano amministrative anche sulla macchina da raggiungere– si collegherà al registro e modificherà il valore della chiave (se presente, in caso contrario l’andrà a creare):
'JAVA Update Remote Disabler (x86) | |
'GSolone 2013 | |
' | |
Const HKEY_CURRENT_USER = &H80000001 | |
Const HKEY_LOCAL_MACHINE = &H80000002 | |
Set WSHShell = WScript.CreateObject("WScript.Shell") | |
Set WNetwork = Wscript.CreateObject("Wscript.Network") | |
On Error Resume Next | |
'Query for target PC | |
strComputer = InputBox("Hostname macchina di destinazione", "JavaUpdateDisabler", WNetwork.ComputerName) | |
If strComputer = "" Then Wscript.Quit | |
'strComputer = Ucase(strComputer) | |
Set StdOut = WScript.StdOut | |
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv") | |
strKeyPath = "SOFTWARE\JavaSoft\Java Update\Policy" | |
strValueName = "EnableJavaUpdate" | |
dwValue = 0 | |
oReg.SetDWORDValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,dwValue |
Trovate questo script e qualsiasi eventuale nuova modifica su Gist: gist.github.com/gioxx/963c6cb54fe7a6ada6ec
Insomma, in qualsiasi verso vogliate girare la questione questi sono i metodi sviluppati, provati e verificati per arrivare all’obiettivo. Per qualsiasi commento o ulteriore suggerimento l’area commenti è a vostra totale disposizione :-)
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! :-)