Warum ist setx path nicht funktioniert?

Kann jemand erklären Sie dieses Ergebnis?

Nach der Einstellung Weg, es hat sich nicht geändert. Dieser Lauf war in einer Administrator-Kommandozeile:

C:\Windows\system32>setx path "C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\ProgramData\chocolatey\bin;D:\Program Files (x86)\Microsoft VS Code\bin"

SUCCESS: Specified value was saved.

C:\Windows\system32>path
PATH=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\ProgramData\chocolatey\bin;D:\Program Files (x86)\Microsoft VS Code\bin;D:\Program Files (x86)\metapad36;D:\Program Files (x86)\metapad36" /M

Ich habe gelesen, dass die %PATH% = PATH-variable für die Maschine + die variable PATH für den Benutzer. Sehe ich die Maschine Weg + Admin-Pfad?

Habe mir bei anderen Artikeln zu dem Thema, aber immer noch verwirrt.

Sollte ich deaktivieren Sie die Benutzer Pfade, so gibt es keine überschneidungen?

update: Neu der Tipp, dass "Variablen erstellt oder geändert, die von diesem tool wird in Zukunft den Befehl windows -" öffne ich ein nicht-admin - Fenster und geben Sie ein:

>path
PATH=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\ProgramData\chocolatey\bin;D:\Program Files (x86)\Microsoft VS Code\bin;;D:\Program Files (x86)\metapad36;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\ProgramData\chocolatey\bin;D:\Program Files (x86)\Microsoft VS Code\bin

Der Pfad wird zweimal wiederholt. Ok, dann an der gleichen Eingabeaufforderung ich setx den Pfad ohne das zu wiederholen, und ohne /M:

>setx path "C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\ProgramData\chocolatey\bin;D:\Program Files (x86)\Microsoft VS Code\bin"

SUCCESS: Specified value was saved.

Offenbar gerettet in der aktuellen Umgebung des Benutzers.

Dann öffne ich ein neue nicht-admin Befehlsfenster, und:

>path
PATH=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\ProgramData\chocolatey\bin;D:\Program Files (x86)\Microsoft VS Code\bin;;D:\Program Files (x86)\metapad36;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\ProgramData\chocolatey\bin;D:\Program Files (x86)\Microsoft VS Code\bin`

Es hat sich nicht geändert. Warum?

  • Wenn man die "Vervielfältigung" stammt aus der system-Variablen, müssen Sie setx /M die korrigierte path zu (bei einer erhöhten cmd-Eingabeaufforderung, natürlich). Ändern der Benutzer-Wert von path nicht geht, Einträge zu entfernen, die im system definiert sind Wert path.
  • Es klingt wie du sagst, dass path eingetragen auf nicht Admin Kommandozeilen-zurück-system-weit Weg, nicht in user-level-Pfad. Wirklich? Ich merke Eingabe path eingetragen auf nicht Admin command-line gibt unterschiedliche Ergebnisse als path eingegeben werden, auf eine Admin - Befehl-Linie. Aber wenn in beiden Fällen die Rückgabe von system-Pfad, warum sind Sie unterschiedlich? thx
  • Nein, Sie missverstanden. Sie brauchen nur die erhöhten Eingabeaufforderung, um für setx /M zu dürfen, ändern Sie die system-Umgebungsvariable path. Andere als die, die erhöht ist (run-as-admin) und normalen (nicht erhöhten) cmd aufgefordert, die gleiche Umgebung. Beachten Sie, dass PATH insbesondere ist eine Kombination von system-PFAD + user WEG, siehe zum Beispiel Umgebungsvariablen in Windows NT: The User path is appended to the system path. Wenn Sie irgendwie beide auf den gleichen Wert, wird der resultierende PFAD enthält Duplikate, wie Sie sind, zu sehen.
InformationsquelleAutor johny why | 2016-02-11
Schreibe einen Kommentar