Views
WinstScripts
>>
oracle-snapshot
last edited 2 years ago by rfrankow
;Dies Script untersucht ob bereits ein alter Oracle-Client installiert ist.
;Deinstalliert diesen (hier c:\oracle\ora1010) incl. Registryeinträge.
;Und installiert ein Snapshot auf (hier Oracle-Instant-Client).
;Zudem passt das Script den Path und die Registry an.
;Dies Script unbedingt an die eigenen Gegebenheiten anpassen!
[Initial]
Message=installiere Oracle 10.2.0 InstantClient ......
LogLevel=2
ExitOnError=false
ScriptErrorMessages=on
TraceMode=off
[Aktionen]
DefVar $SYSTEMSYS$
Set $SYSTEMSYS$ = "%SYSTEM%"
DefVar $SYSTEMDRIVE$
Set $SYSTEMDRIVE$ = "%SYSTEMDRIVE%"
DefVar $ProgramFilesDir$
Set $ProgramFilesDir$ = "%ProgramFilesDir%"
DefVar $SYSTEMROOT$
Set $SYSTEMROOT$ = "%SYSTEMROOT%"
DefVar $TEMP$
Set $TEMP$ = EnvVar("TEMP")
DefVar $RebootFlag$
DefVar $WinstRegKey$
DefVar $RebootRegVar$
DefVar $ORADIR$
Set $ORADIR$ = "%SYSTEMDRIVE%\oracle\product\10.2.0\InstantClient10g"
DefVar $TNSDIR$
Set $TNSDIR$ = "%SYSTEMDRIVE%\oracle\network"
DefVar $NTVersion$
Set $NTVersion$ = "undefined"
DefVar $OS$
Set $OS$ = GetOS
if $OS$ = "Windows_NT"
Set $NTVersion$ = GetNTVersion
endif
if ( $OS$ = "Windows_NT" OR $OS$ = "Windows_95" )
if not(HasMinimumSpace ("%SYSTEMDRIVE%", "110 MB"))
LogError "Nicht genügend Platz auf C: . 110 MB auf C: für javavm erforderlich."
else
ShowBitmap /3 "%scriptpath%\oracle.bmp" "Oracle Client 10.2.0"
if FileExists("%SYSTEMDRIVE%\oracle\ora1010")
if $OS$="Windows_NT"
Set $WinstRegKey$ = "HKLM\SOFTWARE\hupsi\winst"
Set $RebootFlag$ = GetRegistryStringValue ("[" + $WinstRegKey$ + "] " + "RebootFlag")
if not ($RebootFlag$ = "1")
;=========================
; Anweisungen vor Reboot
DefVar $OldPath$
DefVar $NewPath$
DefStringlist $PathList$
; Path holen
set $OldPath$ = GetRegistryStringValue ("[HKLM\System\CurrentControlSet\Control\Session Manager\Environment] Path")
;Path auftrennen
set $PathList$ = splitstring ( $OldPath$, ";")
; Pfad neu zusammensetzten
for %s% in $PathList$ do sub_buildNewPath
; neuen Pfad eintragen
Registry_new_path
Registry_delete_oldoracle
; Reboot initialisieren ...
Set $RebootFlag$ = "1"
Registry_SaveRebootFlag
ExitWindows /ImmediateReboot
else
;=========================
; Anweisungen nach Reboot
; Rebootflag zurücksetzen
Set $RebootFlag$ = "0"
Registry_SaveRebootFlag
; die eigentlichen Anweisungen
Files_delete_oldoracle
Files_Kopiere_Dateien
Registry_OraPatch
endif
endif
else
Files_Kopiere_Dateien
Registry_PathPatch
Registry_OraPatch
ExitWindows /RebootWanted
endif
endif
endif
[Registry_SaveRebootFlag]
openKey [$WinstRegKey$]
set "RebootFlag" = "$RebootFlag$"
[sub_buildNewPath]
if "%s%"="c:\Oracle\Ora1010\bin"
set $NewPath$ = $NewPath$ + $ORADIR$
else
set $NewPath$ = $NewPath$ + "%s%"
endif
set $NewPath$ = $NewPath$ + ";"
[Registry_new_path]
openkey [HKLM\System\CurrentControlSet\Control\Session Manager\Environment]
set "Path" = "$NewPath$"
[Files_delete_oldoracle]
delete -fs %SYSTEMDRIVE%\oracle\ora1010
[Registry_delete_oldoracle]
deletekey [HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraHome1010]
[Files_Kopiere_Dateien]
copy -vs %SCRIPTPATH%\InstantClient10g\*.* $ORADIR$
copy -vs %SCRIPTPATH%\network\*.* $TNSDIR$
[Registry_PathPatch]
openkey [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\control\Session Manager\Environment]
supp "Path"; "$ORADIR$"
[Registry_OraPatch]
openkey [HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE]
set "TNS_ADMIN"="$TNSDIR$"
openkey [HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraInstantClient10g]
set "ORACLE_HOME"="$ORADIR$"
set "ORACLE_HOME_NAME"="OraInstantClient10g"
set "ORACLE_GROUP_NAME"="Oracle - OraInstantClient10g"
set "TNS_ADMIN"="$TNSDIR$"
set "NLS_LANG"="GERMAN_GERMANY.WE8ISO8859P1"