Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Usando o VBS e o registro para determinar qual versão e drivers oracle de 32 x 64 bits estão instalados


De acordo com seu código VBS, a pergunta deve ser:Usando VBS e o registro para determinar qual versão e 32 vs. 64 bits de ODBC os drivers estão instalados

Existem muitos outros drivers disponíveis para Oracle, por exemplo. OleDB, ODP.NET, JDBC, etc.

Para obter 32 e 64 bits, você pode fazê-lo de duas maneiras

Execute o VBS em um host de script diferente, ou seja,
For 64 Bit: >c:\Windows\system32\cscript.exe Drivers.vbs
For 32 Bit: >c:\Windows\SysWOW64\cscript.exe Drivers.vbs

Ou modifique o script VBS para interrogar o caminho de 32 e 64 bits no Registro:
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

Outra observação:TNS_ADMIN e ORACLE_HOME podem ser definidas por variável de ambiente, porém você pode defini-las também no Registro. Verifique se há 64 bits
HKLM\SOFTWARE\ORACLE\Key_{ORACLE_HOME_NAME}\TNS_ADMIN 
and 
HKLM\SOFTWARE\ORACLE\Key_{ORACLE_HOME_NAME}\ORACLE_HOME

e para 32 bits
HKLM\SOFTWARE\Wow6432Node\ORACLE\Key_{ORACLE_HOME_NAME}\TNS_ADMIN
and
HKLM\SOFTWARE\Wow6432Node\ORACLE\Key_{ORACLE_HOME_NAME}\ORACLE_HOME