Oracle
 sql >> Database >  >> RDS >> Oracle

Utilizzo di VBS e del registro per determinare quale versione e driver Oracle a 32 o 64 bit sono installati

Secondo il tuo codice VBS la domanda dovrebbe essere:Uso di VBS e del registro per determinare quale versione e 32 vs 64 bit di ODBC i driver sono installati

Ci sono molti altri driver disponibili per Oracle, ad es. OleDB, ODP.NET, JDBC, ecc.

Per ottenere 32 e 64 bit puoi farlo in due modi

Eseguire il VBS in un host di script diverso, ad es.

For 64 Bit: >c:\Windows\system32\cscript.exe Drivers.vbs
For 32 Bit: >c:\Windows\SysWOW64\cscript.exe Drivers.vbs

Oppure modifica lo script VBS per interrogare i percorsi a 32 e 64 bit nel Registro di sistema:

strComputer = "."
Set objRegistry = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")

strKeyPath = "SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers"
objRegistry.EnumValues HKEY_LOCAL_MACHINE, strKeyPath, arrValueNames, arrValueTypes

For i = 0 to UBound(arrValueNames)
    strValueName = arrValueNames(i)
    objRegistry.GetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue    
    Wscript.Echo arrValueNames(i) & " -- 64 Bit " & strValue
Next

strKeyPath = "SOFTWARE\Wow6432Node\ODBC\ODBCINST.INI\ODBC Drivers"
objRegistry.EnumValues HKEY_LOCAL_MACHINE, strKeyPath, arrValueNames, arrValueTypes

For i = 0 to UBound(arrValueNames)
    strValueName = arrValueNames(i)
    objRegistry.GetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue    
    Wscript.Echo arrValueNames(i) & " -- 32 Bit " & strValue
Next

Un'altra nota:TNS_ADMIN e ORACLE_HOME possono essere definiti da variabili di ambiente, tuttavia è possibile definirli anche nel Registro. Verifica la presenza di 64 bit

HKLM\SOFTWARE\ORACLE\Key_{ORACLE_HOME_NAME}\TNS_ADMIN 
and 
HKLM\SOFTWARE\ORACLE\Key_{ORACLE_HOME_NAME}\ORACLE_HOME

e per 32 bit

HKLM\SOFTWARE\Wow6432Node\ORACLE\Key_{ORACLE_HOME_NAME}\TNS_ADMIN
and
HKLM\SOFTWARE\Wow6432Node\ORACLE\Key_{ORACLE_HOME_NAME}\ORACLE_HOME