Um Java (aktuell Version 8 Update 201) zu verteilen, gibt es zwei Möglichkeiten. Entweder verteilt man ein MSI Paket oder die EXE-Datei als silent (unattended) Installation.
Das Problem bei Java ist die Autoupdate Funktion. Sobald eine neue Version erscheint, bekommen die User eine Meldung, können als Standardbenutzer aber das Update nicht installieren.
Daher verteile ich die neue Version als angepasstes MSI. Um die MSI Datei zu erhalten, wählt man auf der Download Seite links aussen „Alle Java Downloads„. Hier kann man nun die Windows Offline Datei herunterladen (32bit für den 32bit Internet Explorer). Wenn man mit der Installation beginnt, aber NICHT auf Installieren klickt, kann man unter C:\Users\“benutzername“\AppData\LocalLow\Oracle\Java\“jre-Versionsnummer“ die entpackte MSI Datei wegkopieren und danach die Installation abbrechen.
Um ein passendes MSI zu erstellen, verwende ich Orca von Microsoft, das in den Windows Installer Development Tools enthalten ist. Leider muss man für das kleine Orca die ganzen Tools (1GB) herunterladen. Danach kann man die ISO Datei auf eine DVD brennen oder z.B. mit 7Zip in einen Ordner extrahieren. Im Ordner \setup\WinSDKTools kann man die Datei cab1 mit einem Doppelklick öffnen und dann die Datei WinSDK_Orca_MSI…… Extrahieren. Sobald man diese Datei mit dem Dateinamen .msi ergänzt, kann man Orca per Doppelklick installieren.
Nun ändert man mit Orca unter Property die Eigenschaften:
AUTOUPDATECHECK: 0
JAVAUPDATE: 0
EULA: 1 (nicht mehr vorhanden bei Versionen > 8.)
IEXPLORER: 1 (nicht mehr vorhanden bei Versionen >8.)
Nun kann man das MSI speichern und z.B. über die Gruppenrichtlinien verteilen….
…oder über SCCM mit …
msiexec /i jre.msi
Ich habe das Java MSI auf jre.msi umgetauft (ohne Versionsangabe). Somit kann man einfach die neueste Version über die alte kopieren, den Distributionpoint aktualisieren und das Programm erneut zuweisen. Dies ist viel schneller, als wenn man jedes Mal ein neues Paket erstellen muss.
Java lässt sich auf diesem Wege nicht installieren, wenn der Internet Explorer zum Installationszeitpunkt geöffnet ist. Dies ist bei der Installation über die Gruppenrichtlinien kein Problem, weil vor der Anmeldung eines Benutzers der IE nicht geöffnet sein kann…
Man könnte nun den IE vor der Java Installation über einen taskkill Befehl schliessen, was nicht die ganz feine Art ist. Die Installation über WOL in der Nacht durchzuführen kommt bei so vielen Laptops, die in der Nacht nicht am Netz hängen, auch nicht in Frage. Daher verwende ich die Bedingung “Nur wenn kein Benutzer angemeldet ist”.
Viel Erfolg!
Nachtrag
Bei der letzten Version hatte ich Probleme mit diversen Computern, die danach zwar angezeigt hatten, dass sie die neue Version installiert hätten, diese war aber nicht in einem funktionsfähigen Zustand. Allenfalls kommt das zustande, wenn sich jemand anmeldet, während die Software installiert wird.
Ich habe mich nun entschieden, auf die Bedingung “Nur wenn kein Benutzer angemeldet ist” zu verzichten und den IE vor der Installation halt doch zu schliessen. Nicht ganz die feine Art, ich weiss…