質問はほとんどすべてを言っています。自分のPATH
環境変数を編集する権限を持っていないユーザーがいて、何らかの理由で環境変数を変更する必要がある場合PATH
、ユーザーが再度ログインする前に管理者がログインして変更できるようにログアウトする必要があります。これは理想的ではありません。より良い方法でそれを行うことができますか?
質問はほとんどすべてを言っています。自分のPATH
環境変数を編集する権限を持っていないユーザーがいて、何らかの理由で環境変数を変更する必要がある場合PATH
、ユーザーが再度ログインする前に管理者がログインして変更できるようにログアウトする必要があります。これは理想的ではありません。より良い方法でそれを行うことができますか?
回答:
管理者権限のないアカウントの場合:
「ユーザーアカウント」を開き、「環境変数の変更」を選択します(http://support.microsoft.com/kb/931715)。
このダイアログには、現在のユーザー変数とシステム変数が表示されます。ローカルのPATH変数をまだ追加していない場合は、追加する必要があります。
たとえば、Python 3.3ディレクトリを含めるようにパスを更新するには、[新規]をクリックします。
変数名:PATH変数値:%PATH%; C:\ Python33
これにより、現在のシステムPATHを取得して追加することにより、ローカルPATHが作成されます。
マイコンピュータ/プロパティ/詳細設定/環境変数。既に開いているコマンドプロンプトウィンドウを除き、そこでの変更はすぐに有効になります。ログアウトして再度ログインする必要はありません。
注:そのウィンドウにアクセスできない場合rundll32 sysdm.cpl,EditEnvironmentVariables
は、[実行]ウィンドウまたはコマンドラインから実行して取得できる場合があります。
コマンドプロンプトでは、次のことができます。
set PATH=C:\somedir;%PATH%
ただし、これはコマンドプロンプト(およびコマンドプロンプトから起動されたすべてのアプリ)に対してのみ変更されます。これをユーザーが行うすべてに適用すると仮定して、ユーザーの環境変数を変更します。[マイコンピューター]、[プロパティ]、[詳細設定]、[環境変数]を右クリックし、[変数を追加するためのユーザー変数:
PATH = C:\whatever
ユーザーがログインすると、システム全体のパスに追加されます。
setx
、@ Berzemusが述べたように、システムのPATH変数(/m
スイッチ)を永久に編集できます。
ユーザーは、コマンドプロンプトでPATH変数を設定できます。これにより、ユーザーに「管理者」権限がない場合でも、システム全体のPATH変数が上書きされます。この変更は、ユーザーがそのコマンドプロンプトから起動する新しいプロセスに対して有効になります。(既存のExplorerプロセス、および変更が行われたときにユーザーが実行している他のプロセスは、変更を「認識」しません。)
上記の回答に加えて、レジストリを更新することもできます(スクリプトを作成できるという利点があります)。
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
繰り返しますが、このアプレットはレジストリを編集し、上記と同じ効果があります。