Oracle – Data Access Components silent installieren

30. November 2010

Wie rollt man zu einer bestehenden Oracle Client Version die Data Access Components aus? Natürlich mit dem Silent Installer, den man mit Hilfe einer Antwort-Datei versorgen kann.

Problem: Was ist mit unterschiedlichen Oracle Home-Verzeichnissen?

Lösung: Kleines Script mit Windows Scripting Host
'Festlegung der Konstanten
Const HKEY_CLASSES_ROOT = &H80000000
Const HKEY_CURRENT_USER = &H80000001
Const HKEY_LOCAL_MACHINE = &H80000002
Const HKEY_USERS = &H80000003
Const HKEY_CURRENT_CONFIG = &H80000005
Const HKEY_DYN_DATA = &H80000006
Const COMPUTER = "."
Const ForWriting = 2
Const ForAppending = 8

'Festlegung der Variablen
Dim KeyPath, ValueName, ValueArray, Value, ORAKEY, RegKey, orahome, oragroupname, orahomename, cmdline, cmdline2, cmdline3, cmdline4, cmdline5, objReg, FSO, Datei, i

'WMI Object erstellen wegen Registry
Set objReg = _
GetObject("winmgmts:\\" &_
COMPUTER & "\root\default:StdRegProv")

'Pfad zur Registry festlegen um ORA-Home-Informationen zu beziehen
KeyPath = "SOFTWARE\ORACLE\"
objReg.EnumKey HKEY_LOCAL_MACHINE, KeyPath, ValueArray

'OracleKey auslesen
ORAKEY = ValueArray(0)
Set WSHShell = CreateObject("WScript.Shell")
RegKey = "HKLM\SOFTWARE\ORACLE\" & ORAKEY &"\"
orahome = WSHShell.RegRead(RegKey & "ORACLE_HOME")
oragroupname = WSHShell.RegRead(RegKey & "ORACLE_GROUP_NAME")
orahomename = WSHShell.RegRead(RegKey & "ORACLE_HOME_NAME")

'Batch-Befehl erstellen und aus den Informationen der Registry zusammenbauen
cmdline = "c:\temp\oracle\install\setup.exe"
cmdline2 ="ORACLE_HOME=" & chr(34) & orahome & chr(34)
cmdline3 ="ORACLE_HOME_NAME=" & chr(34) & orahomename & chr(34)
cmdline4 ="TOPLEVEL_COMPONENT={"&chr(34)&"oracle.odac"&chr(34)&","& chr(34) & "10.2.0.2.21" & chr(34) & "}"
cmdline5 ="-waitforcompletion -nowait -silent"

'FSO Object erzeugen (Dateisystem für Batch)
Set FSO = CreateObject("Scripting.FileSystemObject")
'Batch-Datei erzeugen
Set Datei = fso.OpenTextFile("c:\temp\oracle\script\oadcinst.cmd",ForWriting)
Datei.Write "start /MIN" & chr(32) & cmdline&chr(32)&cmdline2&chr(32)&cmdline3&chr(32)&cmdline4&chr(32)&cmdline5
Datei.Close

Nun muss nur noch die oadcinst.cmd geöffnet werden und die Date Access Componants werden korrekt installiert. Wichtig ist auch, dass die Installer dateien auf dem lokalen System zur Verfügung stehen. Diese können jedoch nach der erfolgreichen Installation gelöscht werden.

Advertisements

Kangoo´s Blog

Just another WordPress.com site