61
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

Windowsのシステム環境変数とユーザ環境変数

環境変数の適用

どちらか片方のみが設定されている場合

設定された値が呼び出される。

両方に設定されている場合

ユーザ環境変数で上書される。
※PATHだけは例外

PATHがシステム環境変数とユーザ環境変数共に設定されている場合

「システム環境変数;ユーザ環境変数」という形で設定される。

  • システム環境変数 : C:\WINDOWS\system32
  • ユーザ環境変数 : %JAVA_HOME%\bin
  • ↑の場合のPATH : C:\WINDOWS\system32;%JAVA_HOME%\bin;

後ろに追加されるというのがミソで、上記の環境の場合 C:\WINDOWS\system32%JAVA_HOME%\binjava.exe が存在する場合には java とコマンドを実行するとC:\WINDOWS\system32java.exe が使用されます。

つまり、システム環境変数を変更できない環境でシステム環境変数でPATHが通っている場合、ユーザ側でPATHを通すことができない。(勿論スクリプト内で一時的に変更する事は可能)

ユーザ毎にPATHを上書きする方法ってあるんですか?

サービスで起動されたアプリケーションの環境変数

通常は「システム環境変数」のみ適用される。
サービスの設定の「ログオンタブ → アカウント」でサービス起動ユーザを指定すると、ユーザ環境変数が反映される。

参考URL

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
61
Help us understand the problem. What are the problem?