2 つの Windows PATH 変数間の (明らかに) 冗長な要素を削除できますか?

2 つの Windows PATH 変数間の (明らかに) 冗長な要素を削除できますか?

何らかの理由で (これが Windows の標準かどうかはわかりませんが)、Windows システム設定の環境変数に 2 つの PATH 変数があります。

Windows 環境変数

すでに存在するものを、もう一方から削除できますか? すべてを両方の場所に保持することを正当化する、両者の違いはありますか?

アップデート: 私は自分のラップトップに管理者アクセス権を持っています (企業のマシンですが)。他のユーザーはいません。

答え1

はい、それは正常です。1 つはユーザー固有の PATH (HKCU\Environment\PATHレジストリ内) で、もう 1 つはシステム PATH ( HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\PATH) です。新しいアカウントが作成されるとき、ユーザー PATH 環境変数はデフォルトでは存在せず、必要な場合は手動で作成されるか、ユーザーがインストールしたプログラムによって作成されることに注意してください。

これらをクリーンアップする必要がある場合は、ユーザー PATH 内の重複を削除します。ユーザー PATH はシステム PATH に追加され、後者はすべてのユーザーに共通です。または コマンドを使用して、結合された値を確認できますPATHSETこれらの変数に対する変更は、すでに開いているコマンド プロンプト ウィンドウには反映されないことに注意してください。

答え2

いいえ、誰もシステム道は一つ、あなたの、システム パスに追加されます。コマンド ウィンドウを開いて入力し、path結果を確認します。

勝手に削除するとシステムパスに追加されるものユーザーパスを空にすると、自分が所有していないプロセスに干渉する可能性があります。たとえば、システム上で自分が「唯一の」ユーザーだからといって、すべてのプロセスが、たとえ自分が開始したものであっても、同じ環境と権限で実行されるわけではありません。(ユーザーパスの方が安全ですが、この区別は質問には含まれていませんでした。

冗長パスについて説明する場合、少なくとも次の 2 つのケースがあります。

  • 同じディレクトリを繰り返し
  • 同じ名前だが、異なるディレクトリにある実行可能ファイル。

重複するディレクトリを識別するには、コマンドラインから完全に置換されたパスを使用するのが最も簡単です。システム環境変数ダイアログでは、後で置換されるシンボルを指定できます。

コメントの1つにもあるように、ダイアログでパスを編集するのは、ユーザーインターフェイスが貧弱なため面倒です。私は通常、Windows版のconflict、さまざまなプログラムがパス上のどこにあるのかを確認できます。文書化少し前に、PATH読みやすい形式で表示する方法に関する関連する質問をいくつか見つけました。

関連情報