質問はほとんどすべてを言います。自分のPATH
環境変数を編集する権限がないユーザーがいます。なんらかの理由で変更する必要がある場合は、ログアウトして管理者がPATH
(ユーザーが再度ログインする前)。これは理想的ではありません。より良い方法でそれを行うことができますか?
管理者権限(または他のrunasメソッド)で常にコマンドシェルを呼び出し、 [〜#〜] setx [〜#〜] などのツールを使用してパスを永続的に変更できます。既存のシェルや実行中のプログラムはおそらく古いパスを使用しますが、新しいシェル/プログラムは新しい設定を使用します。
管理者権限のないアカウントの場合:
「ユーザーアカウント」を開き、「環境変数の変更」を選択します( http://support.Microsoft.com/kb/931715 )。
このダイアログには、現在のユーザー変数とシステム変数が表示されます。まだ追加していない場合は、ローカルPATH変数を追加する必要があります。
たとえば、パスを更新してPython 3.3ディレクトリを含めるには、[新規作成]をクリックします。
変数名:PATH変数値:%PATH%; C:\ Python33
これにより、現在のシステムPATHを取得して追加することにより、ローカルPATHが作成されます。
マイコンピュータ/プロパティ/詳細設定/環境変数。変更はすぐに有効になりますexceptすでに開いているコマンドプロンプトウィンドウの場合。ログアウトして再度ログインする必要はありません。
注:そのウィンドウにアクセスできない場合は、[実行]ウィンドウまたはコマンドラインからrundll32 sysdm.cpl,EditEnvironmentVariables
を実行して取得できる場合があります。
コマンドプロンプトでは、次のことができます。
set PATH=C:\somedir;%PATH%
ただし、これはコマンドプロンプト(およびコマンドプロンプトから起動されたすべてのアプリ)に対してのみ変更されます。これをユーザーが実行するすべてに適用したい場合、ユーザーの環境変数を変更します。 [マイコンピュータ]、[プロパティ]、[詳細設定]、[環境変数]を右クリックし、[変数を追加するためのユーザー変数:
PATH = C:\whatever
ユーザーがログインすると、システム全体のパスに追加されます。
ユーザーは、ユーザーが「管理者」権限を持っていない場合でも、システム全体のPATH変数をオーバーライドするコマンドプロンプトでPATH変数を設定できます。変更は、ユーザーがそのコマンドプロンプトから開始する新しいプロセスに対して有効になります。 (既存のエクスプローラープロセス、および変更が行われたときにユーザーが実行している他のプロセスは、変更を「認識」しません。)
上記の回答に加えて、レジストリを更新することもできます(これにはスクリプトを実行できるという利点があります)。
PATH変数はHKEY_CURRENT_USER\Environmentに格納されています。
現在のパスを読み取るには:
reg query HKEY_CURRENT_USER\Environment /v PATH
パスに値c:\ somedirを追加するには:
reg add HKEY_CURRENT_USER\Environment /v PATH /d "%PATH%;c:\somedir"
プロセスは起動時に環境を読み取るため、新しいパスを取得するにはプロセスを再起動する必要があることに注意してください。
更新:私が見つけた別の方法は実行することです:
rundll32 sysdm.cpl,EditEnvironmentVariables
ここでも、このアプレットはレジストリを編集し、上記と同じ効果があります。