Umgebungsvariablen in PATH Nicht erweitert für Nicht-Administrator-Eingabeaufforderung?

11

Ich habe einen Windows 7-Computer, der, wenn die Eingabeaufforderung von einem normalen Benutzer ausgeführt wird, die Umgebungsvariablen in der nicht erweitert %PATH%. Wenn die Eingabeaufforderung stattdessen als Administrator ausgeführt wird (Rechtsklick, Als Administrator ausführen ), %PATH%wird sie entsprechend erweitert.

Insbesondere %PATH%für die cmd.exeAusführung als Benutzer (angezeigt über set path) gilt Folgendes:

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

... während %PATH%für die cmd.exeAusführung als Administrator wie folgt lautet:

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

Ich habe versucht, mich als neuer Benutzer anzumelden, um ein neues Profil zu erstellen, und das Problem besteht auch in diesem Profil weiterhin. HKEY_CURRENT_USER\Environment\PATHexistiert nicht und HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\Pathstimmt mit dem definierten systemweiten Pfad unter Computereigenschaften -> Umgebungsvariablen überein.

Hat jemand eine Idee, was das sein könnte oder wo ich suchen kann?

Steve Vigneau
quelle

Antworten:

8

Zwei Dinge, die ich versuchen könnte.

  1. Führen Sie eine aus sfc /scannow, um festzustellen, ob dadurch größere Probleme behoben werden.
  2. Überprüfen Sie die Registrierung auf den PathSchlüssel HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment. Was ist der Typ . Es sollte sagenREG_EXPAND_SZ
Nixphoe
quelle
Das war's. Wenn ich eine normale Maschine nehme und sie auf REG_SZdas Problem einstelle, tritt ein Problem auf, wenn ich REG_EXPAND_SZsie zurücksetze.
Steve Vigneau
@Steve - Süß! Ich habe sogar etwas darüber gelernt :)
Nixphoe
Aber ich frage mich. Warum werden diese env-Variablen mit dem falschen Werttyp in der Registrierung erstellt? Ich kann mich nicht erinnern, dieses Problem zuvor gehabt zu haben. Ich verwende Windows 8.1 Update 1 und es scheint, dass dieses Problem sogar unter XP aufgetreten sein könnte! support.microsoft.com/kb/329308
Adrián Pérez
0

Beim Versuch, Maven zu konfigurieren, bin ich auf dasselbe Problem gestoßen ...

Ich habe diesen Beitrag auf Superuser gefunden , der etwas Licht in das Problem gebracht hat, aber er hat bei mir nicht funktioniert. Das Problem schien die Erhöhung von Rechten zu sein, da eine Admin-Shell funktionieren würde, eine Benutzer-Shell jedoch nicht. Ich habe mich schließlich entschlossen, die Benutzervariablen stattdessen einfach als Systemvariablen neu zu erstellen und sie dem globalen Pfad hinzuzufügen.

Dies funktionierte für ein paar Variablen, aber ich hatte ein Paar, das sich immer noch nicht erweitern ließ. Ich habe sie ein paar Mal mit neuen Namen neu erstellt, ohne Erfolg. Die Variablen wurden jedoch in der Benutzer-Shell endgültig korrekt erweitert, nachdem ich die Benutzerkontensteuerung deaktiviert, neu gestartet, die Benutzerkontensteuerung wieder aktiviert und erneut gestartet habe.

Joe Internet
quelle
0

Ich hatte ein sehr ähnliches Problem - die einfache Lösung bestand darin, nach dem Alias ​​in der Pfaddefinition ein Semikolon einzufügen .

Lange Geschichte:

Ich verwende node.jsalso einen NODE_HOME- Alias, der über eine Benutzerumgebungsvariable definiert ist. Ich hänge diesen Alias ​​dann an meine Umgebungsvariable PATH an .

Was ich finde ist, dass nach einem Neustart die Shell den Pfad zu NODE_HOME verloren hat, so dass npmusw. nicht funktioniert. Was ist los?

Bei der Inspektion sehe ich, dass NODE_HOME gesetzt ist, aber auf magische Weise ein Semikolon erhalten hat.

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

PATH endet jetzt mit der Literalzeichenfolge% NODE_HOME% anstelle des erweiterten Pfads zum Knotenordner :

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

Etwas reparieren:

Löschen Sie zunächst das fehlerhafte Semikolon am Ende der Definition von NODE_HOME .

Zweitens fügen Sie in der Definition von PATH nach dem Symbol NODE_HOME ein Semikolon hinzu :

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

Wenn ich jetzt eine neue Shell starte und PATH erweitere , findet sie NODE_HOME :

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

Und npmfunktioniert wieder!

Oscar Bravo
quelle
-1

PROBLEM : Mein Problem war nur sinilar, da ich Sie richtig verstehe. Mein "Pfad" enthielt ...;% ANT_HOME% \ bin; ... Ich hatte die Variable ANT_HOME unter Systemvariablen (nicht Benutzervariablen) korrekt eingestellt, und CMD -> SET wie "echo% ANT_HOME%" druckte sie korrekt aus .

LÖSUNG : Ich habe das Problem gelöst, indem ich den Ordner von c: \ dev \ 3rd \ ant ... nach c: ** Programmdateien (x86) ** \ dev \ 3rd \ ant ... verschoben habe.

Lala.box
quelle