(Get-ChildItem -Path HKLM:\SOFTWARE\ORACLE | ? {$_.Property -eq "ORACLE_HOME"}).GetValue("ORACLE_HOME")
Windows 64-bit に Oracle Client 32-bit をインストールしている場合
(Get-ChildItem -Path HKLM:\SOFTWARE\WOW6432Node\ORACLE | ? {$_.Property -eq "ORACLE_HOME"}).GetValue("ORACLE_HOME")
レジストリ・パラメータについて
データベース管理者リファレンス for Microsoft Windows によると
レジストリ・パラメータの概要
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_HOMENAMEについて
コンピュータの新規OracleホームにOracle製品をインストールするたびに、HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_HOMENAME
が作成されます。
このサブキーにはほとんどのOracle製品に対するパラメータ値が含まれます
(略)
ORACLE_HOME
Oracle製品がインストールされるOracleホーム・ディレクトリを指定します。
とあります。
このレジストリのサブキーは %ORACLE_HOME%\BIN\oracle.key
に記載されています。したがって、以下のように PATH を探索して取得することができます。
Get-Content (Join-Path ($Env:Path.Split(';') | ? {($_ -ne "") -and (Test-Path (Join-Path $_ oracle.key))}) oracle.key)
上述のワンライナーでは ORACLE_HOME
というプロパティがあるキーを取得するという方法を採用しています。