2009-02-13 3 views
21

Ich habe diese seltsame Situation:Warum unterscheidet sich der Powershell Environment PATH vom System Environment PATH?

Die PATH-Variable meines Benutzers und Systems unterscheidet sich von der PATH in Powershell.

Wenn ich tun:

PS C:\$env:path 
C:\Windows\System32\WindowsPowerShell\v1.0\;c:\oldpath 

jedoch dies nicht richtig ist, sieht es aus wie es auf einige alte PATH-Variable meines Systems stecken, so dass keiner der udpates habe ich getan auf es nicht geändert hat Diese Variable (ich starte nach jeder Änderung neu).

Warum passiert das? Muss ich eine PATH-Variable nur für Powershell setzen?

+0

Wie ändern Sie den Pfad? Ändern Sie einfach mit $ env: Path = foo wird nicht über Sitzungen hinweg bestehen. – EBGreen

+0

Ich ändere den PATH von Computer Eigenschaften wie üblich nicht von der Konsole. –

+0

Sie haben also den Pfad und dann starten Sie Ihre Powershell-Sitzung und es ist nicht, was Sie es geändert haben? – EBGreen

Antwort

30

Die Veränderung „verzögert“, so versuchen Sie eine oder mehrere dieser Lösungen werden könnten:

  • Melden Sie sich ab und auf wieder;
  • Task-Manager>Restart "Windows Explorer" (explorer.exe)
  • Launcher App (launchy, SlickRun, etc) Starten
  • Reboot

Erläuterung:
Powershell erbt die Umgebung des Prozesses, der es gestartet hat (was davon abhängt, wie Sie es starten). Dies ist normalerweise die interaktive Shell (explorer.exe). Wenn Sie die Umgebung über die Computereigenschaften ändern, ändern Sie die Umgebung von explorer.exe. Wenn Sie also Powershell von explorer.exe (z. B. aus dem Startmenü) starten, sollten Sie die neue Umgebung sehen.

Allerdings, wenn Sie es von etwas anderem starten (sagen Sie eine cmd.exe-Shell, die Sie bereits geöffnet hatten), dann werden Sie nicht seit diesem Prozess unter der alten Umgebung gestartet.

Mit anderen Worten: seien Sie vorsichtig, wie Sie Dinge starten.

Verwandte Themen