web-dev-qa-db-ja.com

管理者以外のコマンドプロンプトでPATHの環境変数が展開されない

Windows 7マシンを使用していますが、通常のユーザーがコマンドプロンプトを実行すると、%PATH%の環境変数を展開できません。コマンドプロンプトが代わりに管理者として実行される場合(右クリック、管理者として実行)、%PATH%は適切に展開されます。

具体的には、ユーザーとして実行される%PATH%cmd.exeset pathを介して表示される)は次のとおりです。

Path=%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\Wbem;%SYSTEMROOT\System32\WindowsPowerShell\v1.0\;C:\Program Files\Microsoft Windows Performance Toolkit\

...%PATH%cmd.exeを管理者として実行すると、次のようになります。

Path=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\Wbem;%SYSTEMROOT\System32\WindowsPowerShell\v1.0\;C:\Program Files\Microsoft Windows Performance Toolkit\

新しいユーザーとしてログインして新しいプロファイルを作成しようとしましたが、そのプロファイルでも問題が解決しません。 HKEY_CURRENT_USER\Environment\PATHは存在せず、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\Pathは、[コンピューターのプロパティ]-> [環境変数]で定義されたシステム全体のパスと一致します。

これが何であるか、または私がどこで見ることができるかについて誰かが何か考えを持っていますか?

11
Steve Vigneau

私が試す2つのこと。

  1. sfc /scannowを実行して、より大きな問題が解決するかどうかを確認します。
  2. レジストリでHKLM\SYSTEM\CurrentControlSet\Control\Session Manager\EnvironmentPathキーを確認します。 タイプとは何ですか? REG_EXPAND_SZと表示されます
8
Nixphoe

Mavenを設定しようとしたときに同じ問題に遭遇しました...

私はこれを発見しました スーパーユーザーへの投稿 これは問題にいくつかの光を投げかけましたが、それは私にとってはうまくいきませんでした。管理シェルは機能しましたが、ユーザーシェルは機能しなかったため、問題は権限の昇格に関するもののようでした。代わりに、ユーザー変数をシステム変数として再作成して、グローバルパスに追加することにしました。

これはいくつかの変数で機能しましたが、まだ拡張されないペアが1つありました。私はそれらを新しい名前で数回再作成しましたが、役に立ちませんでした。ただし、UACを無効にして再起動し、UACを再度有効にして、再起動した後、変数は最終的にユーザーシェルで正しく展開されました。

0
Joe Internet

私は非常に似た問題を抱えていました-単純な解決策はパス定義のエイリアスの後にセミコロンを追加することでした。

長い話:

私はnode.jsを使用しているので、NODE_HOMEエイリアスをユーザー環境変数を介して定義します。次に、このエイリアスを[〜#〜] path [〜#〜]環境変数に追加します。

再起動後、シェルがNODE_HOMEへのパスを失ったため、npmなどが機能しないことがわかりました。どうしたの?

検査の結果、NODE_HOMEが設定されていることがわかりますが、魔法のようにセミコロンを取得しています。

C:\Users\ob>echo %NODE_HOME%
C:\Users\ob\node-8.11.1;

[〜#〜] path [〜#〜]はリテラル文字列%NODE_HOME%ノードフォルダへの展開されたパスの代わりに:

C:\Users\ob>echo %PATH%
C:\Program...rams\Git\cmd;%NODE_HOME%

修正するには:

まず、NODE_HOMEの定義の最後から誤ったセミコロンを削除します。

次に、定義のNODE_HOME記号の後にセミコロンaddを付けます[〜#〜]パス[〜#〜]

C:\Program...rams\Git\cmd;%NODE_HOME%;

新しいシェルを起動して[〜#〜] path [〜#〜]を展開すると、が見つかりますNODE_HOME

C:\Users\ob>echo %PATH%
C:\Program...ams\Git\cmd;C:\Users\tkobo\Installations\node-8.11.1;

そしてnpmが再び動作します!

0
Oscar Bravo