環境変数の適用
どちらか片方のみが設定されている場合
設定された値が呼び出される。
両方に設定されている場合
ユーザ環境変数で上書される。
※PATHだけは例外
PATHがシステム環境変数とユーザ環境変数共に設定されている場合
「システム環境変数;ユーザ環境変数」という形で設定される。
- システム環境変数 :
C:\WINDOWS\system32
- ユーザ環境変数 :
%JAVA_HOME%\bin
- ↑の場合のPATH :
C:\WINDOWS\system32;%JAVA_HOME%\bin;
後ろに追加されるというのがミソで、上記の環境の場合 C:\WINDOWS\system32
と%JAVA_HOME%\bin
に java.exe
が存在する場合には java
とコマンドを実行するとC:\WINDOWS\system32
の java.exe
が使用されます。
つまり、システム環境変数を変更できない環境でシステム環境変数でPATHが通っている場合、ユーザ側でPATHを通すことができない。(勿論スクリプト内で一時的に変更する事は可能)
ユーザ毎にPATHを上書きする方法ってあるんですか?
サービスで起動されたアプリケーションの環境変数
通常は「システム環境変数」のみ適用される。
サービスの設定の「ログオンタブ → アカウント」でサービス起動ユーザを指定すると、ユーザ環境変数が反映される。