Deaktivieren Sie die Aufforderung für die veraltete Java-Version

24580
Paul Mung

Wir führen IE9 und Java 1.7 Update 51 (WIN7) in unserer Umgebung aus, und ich habe das Problem, das folgende Popup-Fenster zu entfernen.

Java-Version veraltet

Seit der Veröffentlichung von Update 55 erhalten Benutzer die folgende Aufforderung, wenn sie auf eine Java-Seite geleitet werden. Wenn sie später klicken, wird die Java-App ausgeführt und die Welt ist sicher. Aber die Leute treffen verschiedene Dinge und es ist meine Aufgabe, die Kühe in die richtige Richtung zu bringen.

Was ich gefunden habe, ist das, indem ich den folgenden Reg Key zu HKCU hinzufügte

HKCU \ Software \ AppDataLow \ Software \ JavaSoft \ DeploymentProperties / Deployment.expiration.check.enabled / t REG_SZ / d false / f

Die Aufforderung wird unterdrückt. Also hatte ich vor, alle Benutzerprofile zu durchlaufen und den Schlüssel hinzuzufügen. Nach einem Neustart wird mein Schlüssel jedoch gelöscht und beim nächsten Start einer Java-App wird eine Aufforderung angezeigt.

Ich bereite Update 55 für meine Umgebung vor und möchte diese Aufforderung für zukünftige Java-Versionen entfernen.

Ich habe auch versucht, eine deployment.propertiesDatei mit den folgenden Daten zu verwenden:

deploy.expiration.check.enabled = false deploy.expiration.decision.suppression.10.51.2 = true deploy.expiration.decision.10.51.2 = später

Ich habe diese Datei C:\Users\%username%\AppData\LocalLow\Sun\Java\Deploymentnach einer Java-Installation im Benutzerverzeichnis abgelegt .

Das hat auch nicht funktioniert.

1

2 Antworten auf die Frage

3
clynch

Ich habe auch mit diesem Ärger gerungen und ich habe festgestellt, dass der HKCU\Software\AppDataLow\Software\JavaSoft\DeploymentPropertiesRegistrierungsschlüssel seine Werte aus der Datei deploy.properties des Benutzers erhält. Ich habe die Datei gelöscht, neu erstellt und dann die gewünschten Eigenschaften / Werte geschrieben, bevor Java geladen wird. Ich bin seit dem letzten Start auf einem Windows 7 32-Bit- und 64-Bit-Testcomputer gestartet, auf dem alle Benutzer erfolgreich gestartet wurden.

Hier ist eine PowerShell-Funktion, die für mich funktioniert hat:

Function JavaProperties { $userProfile = $Env:USERPROFILE Remove-Item -Path "$($userProfile)\AppData\LocalLow\Sun\Java\Deployment\deployment.properties" -Force  New-Item -Path "$($userProfile)\AppData\LocalLow\Sun\Java\Deployment" -ItemType File -Name "deployment.properties"  $deployFroperties = Get-ChildItem -Path "$($userProfile)\AppData\LocalLow\Sun\Java\Deployment" -Force -ErrorAction SilentlyContinue | Where{$_.Name -eq "deployment.properties"} | Select -ExpandProperty FullName $expDecision = New-TimeSpan -Start $($(Get-Date).ToString()) -End "January 1, 2020 11:59:00 PM" | Select -ExpandProperty TotalMilliseconds $expDecision  Add-Content -Path $deployFroperties -Value "deployment.expiration.decision.suppression.10.51.2=true" -Force Add-Content -Path $deployFroperties -Value "deployment.expiration.decision.10.51.2=later" -Force Add-Content -Path $deployFroperties -Value "deployment.expiration.decision.timestamp.10.51.2=$expDecision" -Force Add-Content -Path $deployFroperties -Force -Value "deployment.system.tray.icon=true"   }#End Function JavaProperties 
0
Nadu

Nun, einige Sachen, die ich gefunden habe, als ich Java Web Start entdeckte. Decompiling c: \ Programme (x86) \ Java \ jdk1.8.0_66 ** jre \ bin \ plugin2 \ npjp2.dll ** in IDA6-Hexrays

Diese Einstellungen sind beteiligt:

HKEY_CURRENT_USER, SOFTWARE\AppDataLow\SOFTWARE\JavaSoft\DeploymentProperties\pending deployment.expiration.decision.11.66.2 = update|block|later deployment.expiration.decision.suppression.11.66.2 true deployment.expiration.decision.timestamp.11.66.2 86401..18446744073709551616 (<- 0xFFFFFF FFFFFF)  HKEY_CURRENT_USER, SOFTWARE\AppDataLow\SOFTWARE\JavaSoft\DeploymentProperties deployment.expiration.decision.11.66.2 deployment.expiration.decision.suppression.11.66.2 deployment.expiration.decision.timestamp.11.66.2  deployment.webjava.enabled false deployment.expiration.decision.ttl.11.66.2 86401..18446744073709551616 (<- 0xFFFFFF FFFFFF) 

Lassen Sie unter Windows Vista den Teil "SOFTWARE \ AppDataLow \" weg

Fühlen Sie sich also frei, damit herumzuspielen und Sie können diese Werte auch als Umgebungseinstellungen wie diese ausprobieren

Startbrowser.cmd

set deployment.expiration.decision.11.66.2=later set deployment.expiration.decision.suppression.11.66.2=true Firefox.exe %* 

Okay das es.

Am Ende ein Pseudo-Code. Nimm es als Hinweis. Und sei nicht zu ernst - falls es verwirrend ist, ignoriere es einfach.

BOOL __stdcall DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) StringCompare ~otherStrings~ VIA mbscmp ~timestamp~ VIA sscanf "%llu" (<-unsigned long long int)   GetFromEnvOrReg_Depl_pending FORALL  deployment.expiration.decision.11.66.2 deployment.expiration.decision.suppression.11.66.2 deployment.expiration.decision.timestamp.11.66.2  deployment.expiration.decision.11.66.2 ==  update 1 block 2 later 3 if NoValidValue GetFromEnvOrReg_Depl FORALL  deployment.expiration.decision.11.66.2 deployment.expiration.decision.suppression.11.66.2 deployment.expiration.decision.timestamp.11.66.2    deployment.expiration.decision.suppression.11.66.2 true  deployment.expiration.decision.timestamp.11.66.2   GetFromEnvOrReg_Depl  deployment.webjava.enabled false if success return false  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ unfinished deployment.expiration.decision.ttl.11.66.2 ttl+604800 (or +10 if decision is 'later' ) compare is bigger as timestamp if ... decision is not 'block' return false ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   FUNC GetFromEnvOrReg_Depl_pending ( $Value ) MSVCR100.getenv if success return $result  RegOpenKeyExA HKEY_CURRENT_USER  isVistaOrAbove  SOFTWARE\AppDataLow\SOFTWARE\JavaSoft\DeploymentProperties\pending SOFTWARE\JavaSoft\DeploymentProperties\pending  RegQueryValueExA $Value if success Return $result  FUNC GetFromEnvOrReg_Depl ( $Value ) *same* but with  SOFTWARE\JavaSoft\DeploymentProperties  FUNC isVistaOrAbove GetVersionExA VersionInformation.dwPlatformId == VER_PLATFORM_WIN32_NT (2) && VersionInformation.dwMajorVersion >= 6