Ein wichtiger Hintergrund: Mein Unternehmen verfügt über ein generisches VBS-Anmeldeskript, das beim Anmelden Änderungen an der Umgebungsvariablen PATH des Benutzers vornimmt und es mir ermöglicht, Software auszuführen, die Abhängigkeiten von zugeordneten DFS-Dateifreigaben aufweist. Ich habe kürzlich auch das Windows Powershell SDK auf meinem Windows 7 Enterprise-Computer installiert und versucht, meine PATH-Umgebungsvariable über die Powershell-Befehlszeile zu ändern.
Im Anschluss daran stellte ich fest, dass ich keine Anwendungen mehr ausführen konnte, die diesen Anmelde-PATH-Änderungen entsprechen, und dass der Umgebungsvariablen-Editor PATH auf etwas anderes eingestellt war als das, was 'echo %PATH%'
angezeigt wurde, als ich an der Eingabeaufforderung eine ausgab .
So zum Beispiel (Vereinfachung) aus dem Umgebungsvariablen-Editor ( My Computer properties -> Advanced System Settings -> Environment Variables
), den ich hatte
C:\MyDir\; C:\MyOtherDir
wohingegen ich 'echo %PATH%'
an einer Eingabeaufforderung Folgendes bekam:
C:\MyDir\
Hat jemand ein ähnliches Problem gehabt und gab es eine Lösung? Als ich um Hilfe googelte, stieß ich auf Folgendes:
(Verwandte?) StackOverflow-Thread
Mir fiel auf, dass dies das Problem war, wenn das Anmeldeskript von etwas anderem als meiner Explorer.exe-Umgebung initiiert wurde. Als ich das Anmeldeskript selbst ausführte, blieb mein PATH von der Eingabeaufforderung unverändert. Was hätte das mit PowerShell zu tun? Mir fehlt, wie dies vollständig mit dieser Installation verbunden ist.
quelle
Antworten:
Windows verfügt über zwei Klassen von Umgebungsvariablen, Systemumgebungsvariablen und Benutzerumgebungsvariablen . Wenn Sie verwenden
echo %PATH%
, wird Ihre Benutzerumgebungsvariable angezeigtPATH
. Nur wenn keine Benutzervariable definiert ist, wird die Systemvariable für Benutzerprozesse wirksam.Dem
PATH
Trennzeichen;
sollte kein Leerzeichen folgen.Der folgende Microsoft-Hinweis kann hilfreich sein:
Sie können Benutzerumgebungsvariablen ändern, indem Sie den folgenden Registrierungsschlüssel bearbeiten:
Sie können Systemumgebungsvariablen ändern, indem Sie den folgenden Registrierungsschlüssel bearbeiten:
Beachten Sie, dass jede Umgebungsvariable, die erweitert werden muss (z. B. bei Verwendung
%SYSTEM%
) , als Registrierungswert in der Registrierung gespeichertREG_EXPAND_SZ
werden muss. Werte vom TypREG_SZ
werden beim Lesen aus der Registrierung nicht erweitert.Zusätzliche Anmerkung: Wenn ein Prozess seine Umgebung ändert (anstelle der Registrierungseinstellungen, die die Umgebung für neue Prozesse definieren), sind die Änderungen nur für untergeordnete Prozesse sichtbar.
quelle
tmp
undtemp
. Sind Sie sicher, dass dies der Pfad für den Benutzer ist, der geändert werden sollte?