UPDATE:
ACHTUNG – ACHTUNG – ACHTUNG!
Wir haben nun die Vorgangsweise des Rollouts von JAVA grundlegend geändert!!!
Die neue, von uns empfohlene Methode wird hier beschrieben!
Diese neue Methode funktioniert getestet für die Versionen
JAVA 8 Update 66
JAVA 8 Update 71
JAVA 8 Update 91
—————————————
Für Interessierte folgend der ursprüngliche Artikel:
Die übliche Vorgangsweise, um Java per Gruppenrichtlinien auszurollen war bisher, den offline-Installer bei JAVA downzuloaden, den installer zu starten – und nach dem ersten Stopp der Installation (“Willkomen bei Java” bla bla) das .msi – Paket im Ordner
C:\Users\administrator\AppData\LocalLow\Sun\Java\jre1.8.0_25
zu suchen – und dann per GPO auszurollen
Warum Sun nicht einfach gleich das .msi zum Download anbietet wird ein ewiges Rätsel bleiben…
Leider ist das derzeit von SUN angebotene .msi NICHT geeignet, per GPO ausgerollt zu werden, da es erhöhte Rechte (=Administratoren) benötigt.
Ich habe nun eine Anleitung (siehe hier) gefunden, die ich gerne – nachdem ich sie getestet habe – noch einmal kurz zusammenfassen möchte – und die dortigen Fehler ausgebessert habe.
Herzlichster Dank an den Urheber.
Step – by – Step – Anleitung: zentralisierte Installation von JAVA 8 25
[Edit: UNTEN bei den Kommentaren findet sich eine Lösung für Java 8 Update 40
Ich hatte aber noch keine Zeit, diesen Vorschlag auch zu testen...]
- Download des Offline-Installers bei Java (Download -> links außen -> Offline-Installationsprogramm)
- Installation starten, beim ersten Stopp das .msi im Ordner
C:\Users\administrator\AppData\LocalLow\Sun\Java\jre1.8.0_25
suchen und in einen anderen Ordner kopieren - Installation abbrechen
- ORCA downloaden
- jre1.8.0_25.msi mit ORCA öffnen
- folgende Einträge ändern:table “CustomAction”“installexe” –> Feld “Type” ändern in 3074 (decimal)dann hinzufügen:table “Directory”Directory = OracleDir
Directory_Parent = CommonAppDataFolder
DefaultDir = OracleDirectory = JavaDir
Directory_Parent = OracleDir
DefaultDir = Javatable “Component”
Component = emptycfgComponent
ComponentId =
Directory = JavaDir
Attributes = 0 (Decimal)
Condition =
KeyPath Field =table “FeatureComponent”
Feature_ = jrecore
Component_ = emptycfgComponenttable “File”
File Field = java.settings.cfg
Component_ = emptycfgComponent
FileName = java~1.cfg|java.settings.cfg
FileSize Field = 0
Version =
Language =
Attributes = 8192 (Decimal)
Sequence Field = 1table “Media”
DiskId Field = 2
LastSequence Field = 1
DiskPrompt Field =
Cabinet Field =
VolumeLabel Field =
Source Field =table “InstallExecuteSequence” ändern:
“SetSilentInstall” –> UILevel=2 –> UILevel<=3table “Properties” (ändern bzw. fehlende Fehlder hinzufügen)
AUTO_UPDATE=0
AUTOUPDATECHECK=0
JU=0
JAVAUPDATE=0
EULA=0
SPONSORS=0
WEB_JAVA_SECURITY_LEVEL=H
WEB_ANALYTICS=0
7. verändertes .MSI speichern und auf ein Share eines Servers kopieren
8. in diesem Share – ausgehend vom Speicherort eurer .msi folgenden Pfad anlegen:
CommonAppData\Oracle\Java
9. in diesen neu erstellten Unterordner “Java” eine leere Datei erstellen namens
java.settings.cfg
10. Gruppenrichtlinie erstellen (COMPUTERKONFIGURATION)
Letzter Tipp noch:
man kann auf einem Test-PC das .msi-Paket auch manuell starten, um zu testen, ob es Problemlos durchäuft.
Dazu sollte mit einem User, der NICHT Mitglied der Administratoren ist, folgendes in eine Command-Shell eingegeben werden (alles in 1 Zeile!):
[Tipp: davor auf C: den Ordner InstallLOG manuell erstellen, dort ist dann eine Logdatei zu finden]
msiexec /qn /a \\SERVERNAME\SHARENAME\JAVA\jre1.8.0_25.msi /Lime C:\InstallLOG\Protokolldatei.txt
nach ein paar Minuten des wartens und einem NEUSTART sollte JAVA 8 25 dann am Testrechner installiert sein.
(Anmerkung:
dieses .msi lässt sich auch installieren, wenn am Client ältere Versionen vorhanden sind – und bleiben!)
Die angesprochene Logdatei sollte so aussehen:
=== Logging started: 13.11.2014 17:22:53 ===
Action start 17:22:53: ADMIN.
Action start 17:22:53: CostInitialize.
Action ended 17:22:53: CostInitialize. Return value 1.
Action start 17:22:53: FileCost.
Action ended 17:22:53: FileCost. Return value 1.
Action start 17:22:53: CostFinalize.
Action ended 17:22:53: CostFinalize. Return value 1.
Action start 17:22:53: InstallValidate.
Action ended 17:22:53: InstallValidate. Return value 1.
Action start 17:22:53: InstallInitialize.
Action ended 17:22:53: InstallInitialize. Return value 1.
Action start 17:22:53: InstallAdminPackage.
Action ended 17:22:54: InstallAdminPackage. Return value 1.
Action start 17:22:54: InstallFiles.
Action ended 17:22:54: InstallFiles. Return value 1.
Action start 17:22:54: InstallFinalize.
Action ended 17:22:59: InstallFinalize. Return value 1.
Action ended 17:22:59: ADMIN. Return value 1.
MSI (s) (7C:90) [17:22:59:536]: Product: Java 8 Update 25 -- Installation completed successfully.
MSI (s) (7C:90) [17:22:59:551]: Das Produkt wurde durch Windows Installer installiert. Produktname: Java 8 Update 25. Produktversion: 8.0.250.
Produktsprache: 1033. Hersteller: Oracle Corporation. Erfolg- bzw. Fehlerstatus der Installation: 0.
=== Logging stopped: 13.11.2014 17:22:59 ===
PS: Ich würde nichts lieber tun, als meine funktionierende .msi hier zum Download bereit zu stellen…
Aber aus rechtlichen Gründen bla bla bla…
Gegen eine persönliche Bitte und eine nachweisliche Spende für Ärzte ohne Grenzen kann ich aber eventuell ….
Pingback: Upgrade von Java 7 auf Java 8 - scriptbasiertes Deployment per MSI | IT | IMA - Informationen Mal Anders
Hallo Edi
du hast dir ja echt viel Mühe gegeben.
Vielen Dank dafür.
Leider funktioniert die Installation bei mir jedoch nicht wie erhofft.
Das Log endet zwar mit den Einträgen, die Installation sei erfolgreich gewesen, jedoch stimmt das nicht.
Die Installation dauert auch nur 2 Sekunden!!
Irgend etwas muss noch faul sein.
Ich würde wie folgt vorgehen:
erzeugtes .msi manuell am Client starten + Reboot
falls das nicht funktioniert:
.msi neu zusammenstellen – evtl hast Du einen Fehler gemacht in ORCA
falls das nicht funktioniert:
.msi auf einem anderen Client testen
mehr fällt mir dazu leider aktuell auch nicht ein…
Gutes Gelingen!
Siehe mein Kommentar unten zur MSI Sprache.
Ist eventuell die Ursache für dein Problem.
Hallo,
warum der Aufwand eine leere java.settings.cfg per MSI zu verteilen? Es genügt (zumindest mit dem aktuellen Java 1.8.0u31 MSI) nur die Properties im ORCA zu verändern bzw. hinzuzufügen. Die Verteilung per GPO machst du ja dann über die “Computerkonfiguration” im GPO, also auf dem Client dann Installation beim Start über das “SYSTEM”-Konto, das hat administrative Rechte.
Dann bitte die Änderungen auch nicht direkt ins MSI schreiben, sondern als Transform (MST). Die MST-Datei kann dann mit alle zukünftigen Updates von Java8 verwendet werden! Spart die Zeit, bei jedem Update die Änderungen wieder neu ins MSI hineinzubringen. Wobei ich bei einem neuen MSI wenigstens einmal vor Verteilung das MST im ORCA anwenden lasse, um zu sehen, ob es fehlerfrei geht. Könnte ja sein, dass eine Property im MSI nicht mehr vorhanden ist, im MST aber geändert wurde. Das gibt sonst schlimme Suchen, warum die Verteilung nicht klappt
Im GPO Editor dann auf den Reiter “Änderungen” gehen und das MST auswahlen, damit es bei der Installation auch auf das MSI angewendet wird. Ich mache übrigens für jedes Java 8 Update einen eigen Unterordner auf dem Server-Share und lege dort das MSI und das MST rein. Das MST kopiere ich kann einfach immer den neuesten Ordner rüber.
Bei der Erstellung der GPO das MSI auswählen und dann unbedingt auf “Erweitert” gehen, damit man alle Optionen hat. Das ist wichtig, da das Java-MSI (wie einige ander auch!) leider die Sprachkennung “Englisch (USA)” hat. Wir haben aber ein deutsches Windows und so wird das MSI nicht installiert! Erst wenn man unter “Bereitstellung von Software” -> “Erweitert” den Haken bei “Sprache bei Bereitstellen des Pakets ignorieren” macht, klappt die Verteilung.
Sorry, aber habe mich täuschen lassen (erst testen, dann schreiben !!! )). Installation der MSI über GPO ohne eine java.settings.cfg funktioniert NICHT (Fehler 1603 im Ereignisprotokoll). Oracle will wohl erzwingen, dass wir die offizielle JRE-MSI kaufen ….
Es genügt aber die Datei “java.settings.cfg” per GPO zu verteilen:
1) Computerkonfiguration -> Einstellungen -> Windows Einstellungen -> Dateien
2) Neu -> Datei. Dort die Quelldatei auswählen.
3) Als Ziel “%allusersprofile%\oracle\java\java.settings.cfg”
4) Aktion “Aktualisieren”
In die Datei können die Einstellungen rein.
Was es gibt: http://docs.oracle.com/javase/8/docs/technotes/guides/install/config.html
z.B.:
AUTO_UPDATE=0
EULA=0
SPONSORS=0
WEB_ANALYTICS=0
Alternativ geht die Verteilung auch im Installer, dann aber auch besser als MST, als direkt im MSI.
Hallo,
hat leider mit Update 40 nicht funktioniert.
…
=== Logging started: 17.03.2015 11:12:50 ===
Action start 11:12:50: ADMIN.
Action start 11:12:50: CostInitialize.
Action ended 11:12:50: CostInitialize. Return value 1.
Action start 11:12:50: FileCost.
Action ended 11:12:50: FileCost. Return value 1.
Action start 11:12:50: CostFinalize.
Action ended 11:12:50: CostFinalize. Return value 1.
Action start 11:12:50: InstallValidate.
Action ended 11:12:50: InstallValidate. Return value 1.
Action start 11:12:50: InstallInitialize.
Action ended 11:12:50: InstallInitialize. Return value 1.
Action start 11:12:50: InstallAdminPackage.
Action ended 11:12:50: InstallAdminPackage. Return value 1.
Action start 11:12:50: InstallFiles.
Action ended 11:12:50: InstallFiles. Return value 1.
Action start 11:12:50: InstallFinalize.
DEBUG: Error 2356: Couldn’t locate cabinet in stream: Data1.cab.
MSI (s) (C4:BC) [11:12:50:870]: Product: Java 8 Update 40 — The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2356. The arguments are: Data1.cab, ,
The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2356. The arguments are: Data1.cab, ,
Action ended 11:12:50: InstallFinalize. Return value 3.
Action ended 11:12:50: ADMIN. Return value 3.
MSI (s) (C4:BC) [11:12:50:917]: Product: Java 8 Update 40 — Installation failed.
MSI (s) (C4:BC) [11:12:50:917]: Das Produkt wurde durch Windows Installer installiert. Produktname: Java 8 Update 40. Produktversion: 8.0.400. Produktsprache: 1033. Hersteller: Oracle Corporation. Erfolg- bzw. Fehlerstatus der Installation: 1603.
=== Logging stopped: 17.03.2015 11:12:50 ===
Bei Java 8 u 40 funktioniert diese Anleitung nicht mehr so richtig.
Folgender Fehler: EBUG: Error 2721: Custom action installexe not found in Binary table stream.
Welche Einstellung im Orca muss hier verändert werden?
Danke
Hallo!
Ich habe auch Probleme die Anleitung auf Version 8 Update 40 anzuwenden.
Die Installation endet immer mit Error 2721.
Hat jemand eine Idee woran es liegt?
Danke
Axel
Offensichtlich hat Oracle beim Update 40 am Installer geschraubt. Der initiale Wert im Feld Type ist jetzt nicht mehr 1026 sondern 1042. Damit funktioniert die Installation über GPO bei mir reibungslos.
Die Config-Datei wird leider immer noch benötigt.
Hallo,
wie Thomas schon erwähnt hat: bei Punkt 6 in der Anleitung Eintrag: table “CustomAction”“installexe” –> Feld “Type” 1042 (decimal)
Lieber Thomas, lieber Bernhard,
Seid bedankt diese Rückmeldung, ich werde den Artikel entsprechend abändern!!!
Das wird vielen helfen!!!!
Hi,
kennt jemand den Wert für Update 45?
Bei meinen Tests hat 1042 auch mit Update 45 funktioniert. Danke für die Anleitung! Bin mal gespannt, wie die folgenden Updatevorgänge sich gestalten werden….
Danke für deinen Beitrag!
Werde es in den Artikel einarbeiten…
Lg
Ihr seit meine Götter. Ich verteile Java per Windows Update (Local Update Publisher) schon seit Version 6 und bisher bin ich an dem neuen “nach 8.20″ msi Paket verzweifelt.
Mit Hilfe von Eurer Anleitung ist es mir gelungen 8u45 wieder ordentlich zu verteilen, vielen Dank dafür.
Hat schon jemand den Wert für “Type” von “installexe” für die aktuelle Version 1.8.0.60? Weder 1042 noch 3090 funktionieren, ich stoße immer auf den Fehler “Error 2721″.
Oracle scheint die MSI-Dateien weiter aufgeräumt zu haben mit Update 60. Hier fehlt jetzt das Directory “CommonAppDataFolder”:
Directory = CommonAppDataFolder
Directory_Parent = TARGETDIR
DefaultDir = .:Common~1|CommonAppData
Bei mir möchte er die Quelldatei “java.settings.cfg” jetzt aber direkt bei der MSI-Datei liegen haben. Soll mir egal sein, wenn es ansonsten funktioniert.
Hallo,
habe es jetzt auch mit Java 8 Update 60 probiert. Die Installation wurde durchgeführt allerdings habe ich noch folgenden Fehler im Protokoll, weiss wer wieso ? (Error Code 2356):
=== Logging started: 04.09.2015 09:57:01 ===
Action start 09:57:01: ADMIN.
Action start 09:57:01: CostInitialize.
Action ended 09:57:01: CostInitialize. Return value 1.
Action start 09:57:01: FileCost.
Action ended 09:57:01: FileCost. Return value 1.
Action start 09:57:01: CostFinalize.
Action ended 09:57:02: CostFinalize. Return value 1.
Action start 09:57:02: InstallValidate.
Action ended 09:57:02: InstallValidate. Return value 1.
Action start 09:57:02: InstallInitialize.
Action ended 09:57:02: InstallInitialize. Return value 1.
Action start 09:57:02: InstallAdminPackage.
Action ended 09:57:02: InstallAdminPackage. Return value 1.
Action start 09:57:02: InstallFiles.
Action ended 09:57:02: InstallFiles. Return value 1.
Action start 09:57:02: InstallFinalize.
DEBUG: Error 2356: Couldn’t locate cabinet in stream: Data1.cab.
The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2356. The arguments are: Data1.cab, ,
MSI (s) (54:E0) [09:57:02:304]: Product: Java 8 Update 60 (64-bit) — The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2356. The arguments are: Data1.cab, ,
Action ended 09:57:02: InstallFinalize. Return value 3.
Action ended 09:57:02: ADMIN. Return value 3.
=== Logging stopped: 04.09.2015 09:57:02 ===
MSI (s) (54:E0) [09:57:02:336]: Product: Java 8 Update 60 (64-bit) — Installation failed.
MSI (s) (54:E0) [09:57:02:336]: Das Produkt wurde durch Windows Installer installiert. Produktname: Java 8 Update 60 (64-bit). Produktversion: 8.0.600.27. Produktsprache: 1033. Hersteller: Oracle Corporation. Erfolg- bzw. Fehlerstatus der Installation: 1603.
sobald ich die MSI mit dem ORCA geändert und wieder abgespeichert habe, bekomme ich eine wesentlich kleinere MSI Datei zurück (52MB 1.8u60 ursprünglich und nachher 1,2MB). Mit SuperOrca ist die Dateigröße zwar gleich, aber die Installation schlägt dennoch fehl.
Gilt die Anleitung für 64 und 32 bit Java MSI?
Was bewirkt der Wert Type bei installexe? Auf anderen Seiten wurden andere Werte vorgeschlagen.
Gruß
Fehlermeldung lautet:
DEBUG: Error 2705: Invalid table: Directory; Could not be linked as tree.
MSI (s) (E4:D0) [17:56:33:942]: Product: Java 8 Update 60 — The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2705. The arguments are: Directory, ,
Eine nicht angepasste MSI wird zwar durch GPO installiert, aber ich möchte die Settings schon gerne drin haben (Autoupdate, Silentinstall, etc)
Es lag an der java.settings.cfg, welche sich nicht in dem Verzeichnis der MSI befand (Dank an Tim Gerund)
Leider klappt die Deinstallation der Vorgängerversion (8u66) nicht beim Installieren der 8u71 und 8u72. Hab einige Tests gemacht, leider erfolglos.
Servus Kuh’s Admin!
Ich mache das Rollout von JAVA nun etwas anders, vielleicht ist das ja was für Dich:
http://www.schulnetz.info/java-8-update-73-ausrollen-via-adminomat-anstatt-gpo/
Diese Methode funktioniert auch für die Deinstallation von 8u66, in dem Du Dir in der registry eines Deiner Clients, der 8u66 installiert hast, die Uninstall-SID heraussuchst.
Diese SID ist zu finden unter dem Tree, der wie folgt beginnt:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{26A24AE4-
gutes gelingen,
lg
Edi