Skip to content

opsi.orgheader image

opsi.org
Views
WinstScripts >>

oracle-snapshot

Document Actions
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"