Oracle
 sql >> Base de données >  >> RDS >> Oracle

Utilisation de VBS et du registre pour déterminer la version et les pilotes Oracle 32 ou 64 bits installés

Selon votre code VBS, la question devrait être :Utiliser VBS et le registre pour déterminer quelle version et 32 ​​ou 64 bits d'ODBC les pilotes sont installés

Il existe de nombreux autres pilotes disponibles pour Oracle, par ex. OleDB, ODP.NET, JDBC, etc.

Pour obtenir 32 et 64 bits, vous pouvez le faire de deux manières

Soit exécuter le VBS dans un hôte de script différent, c'est-à-dire

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

Ou modifiez le script VBS afin d'interroger les chemins 32 et 64 bits dans le registre :

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

Autre remarque :TNS_ADMIN et ORACLE_HOME peuvent être définis par variable d'environnement, mais vous pouvez également les définir dans le registre. Vérifier 64 bits

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

et pour 32 bits

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