wir nutzen opsi nun schon etwas länger um unsere standardmäßig eingesetzte Software zu aktualisieren.
Beim Java JRE kam es in der Vergangenheit immer mal wieder zu dem Problem, dass nach einem Update das JRe nicht mehr korrekt funktionierte. Die Java-Verwatungsoberfläche in den Systemsteuerungen kann dann auch nicht mehr aufgerufen werden. Eine erneute Installation schlägt dann ebenfalls fehl.
Das Problem kann dann durch das Ausführen des folgenden Skripts (fixjava.bat Quelle: http://forums.whatthetech.com/index.php ... pic=104537) und anschließender Neusinstallation des JRE behoben werden:
Code: Alles auswählen
reg query hklm\software\classes\installer\products /f "java(tm) 6" /s | find "HKEY_LOCAL_MACHINE" > deljava.txt
for /f "tokens=* delims= " %%a in (deljava.txt) do reg delete %%a /f
del deljava.txt
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment" /f
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\wow6432node\JavaSoft\Java Runtime Environment" /f
Hier das Installationsskript:
Code: Alles auswählen
[Initial]
;Standard Text, der während der Installation angezeigt wird
Message = Bitte warten, das Produkt wird installiert
;Loglevel einstellen
setLogLevel = 6
;Bei Fehlern abbrechen
ExitOnError = false
;Syntax Fehler werden in einem separaten Fenster angezeigt
ScriptErrorMessages = on
;Single-Step Mode nicht verwenden
TraceMode = off
;Im Batchmode das Winst-Fenster nicht im Vordergrund anzeigen
StayOnTop = false
[Actions]
;Variable für die Ermittlung des Betriebssystems
DefVar $OS$
set $OS$ = GetOS
;Variable für die Ermittlung der Betriebssystem Unterversion
DefVar $NTVersion$
set $NTVersion$ = GetNTVersion
;Variable zur Ermittlung der Systemarchitektur
DefVar $SystemType$
Set $SystemType$ = GetSystemType
;Name des Produkts (max. 12 Zeichen)
DefVar $ProductName$
Set $ProductName$ = "Java JRE 1.6 Update 38"
;Vollständiger Produktname incl. Versionsnummer
DefVar $ProductNameFull1$
set $ProductNameFull1$ = "Java JRE 1.6 U38"
;Dateinamen der zu installierenden MSI-Pakete
DefVar $Executable1$
Set $Executable1$ = "jre1.6.0_38.msi"
DefVar $Executable2$
Set $Executable2$ = "jre1.6.0_38.msi"
;Die Variable zur Auswertung des ExitCodes
DefVar $ExitCode$
;Prüfen der Winst Version
requiredWinstVersion >= "4.11"
;Anzeigen der Installationsbenachrichtigung incl. des vollen Produktnamens
Message "Installiere "+$ProductNameFull1$
;Freien Speicherplatz ermitteln
if not (HasMinimumSpace ("%SYSTEMDRIVE%", "500 MB"))
LogError "Nicht genügend Platz auf %SYSTEMDRIVE%"
isFatalError
endif
;OS-Version ermitteln
if ( $NTVersion$ = "Win2K" OR $NTVersion$ = "WinXP" OR $NTVersion$ = "Win NT 5.2" OR $NTVersion$ = "Windows Vista" )
if $SystemType$ = "x86 System"
Winbatch_Install_32-Bit
Winbatch_Disable_Updates
sub "%ScripPath%\install\check_exitcode\check_msi-exitcode.ins"
endif
if $SystemType$ = "64 Bit System"
Winbatch_Install_64-Bit
Winbatch_Install_32-Bit
Winbatch_Disable_Updates
sub "%ScriptPath%\install\check_exitcode\check_msi-exitcode.ins"
endif
else
LogError "Kein kompatibles Betriebssystem installiert"
isFatalError
endif
[Winbatch_Install_32-Bit]
msiexec /i "%SCRIPTPATH%\32Bit\$Executable1$" /passive /norestart /qb IEXPLORER=1 MOZILLA=1 REBOOT=Suppress
[Winbatch_Install_64-Bit]
msiexec /i "%SCRIPTPATH%\64Bit\$Executable2$" /passive /norestart /qb IEXPLORER=1 MOZILLA=1 REBOOT=Suppress
[Winbatch_Disable_Updates]
regedit.exe /s "%SCRIPTPATH%\java_update_off.reg"
Grüße
Roland