Las variables de entorno en PATH no se han expandido para el símbolo del sistema que no es de administrador?


11

Tengo una máquina con Windows 7 que, cuando el símbolo del sistema lo ejecuta un usuario normal, no puede expandir las variables de entorno en el %PATH%. Si el símbolo del sistema se ejecuta como administrador (clic derecho, Ejecutar como administrador ), entonces %PATH%se expande adecuadamente.

Específicamente, %PATH%para cmd.exeejecutarse como el usuario (mostrado a través de set path) es el siguiente:

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

... mientras que %PATH%para cmd.exeejecutar como Administrador es el siguiente:

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

Intenté iniciar sesión como un nuevo usuario para crear un nuevo perfil, y el problema persiste en ese perfil también. HKEY_CURRENT_USER\Environment\PATHno existe y HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\Pathcoincide con la ruta definida en todo el sistema en Propiedades del equipo -> Variables de entorno.

¿Alguien tiene alguna idea de lo que podría ser, o dónde puedo mirar?

Respuestas:


8

Dos cosas que podría intentar.

  1. Ejecute un sfc /scannowpara ver si eso soluciona problemas más grandes en juego.
  2. Verifique el registro de la Pathclave HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment. ¿Cuál es el tipo . Debería decirREG_EXPAND_SZ

Eso fue todo. Si tomo una máquina normal y la configuro para REG_SZque ocurra el problema, si la configuro nuevamente REG_EXPAND_SZse soluciona.
Steve Vigneau

@ Steve - ¡Dulce! Incluso aprendí algo al respecto :)
Nixphoe

1
Pero me pregunto. ¿Por qué crea esos entornos con el tipo de valor incorrecto en el registro? No recuerdo haber tenido este problema antes, estoy usando Windows 8.1 Update 1 y parece que este problema podría haber sucedido incluso en XP. support.microsoft.com/kb/329308
Adrián Pérez

0

Me encontré con el mismo problema al intentar configurar Maven ...

Encontré esta publicación en Superusuario que arrojó algo de luz sobre el tema, pero no funcionó para mí. El problema parecía ser sobre la elevación de derechos, ya que un shell de administrador funcionaría, pero un shell de usuario no. Finalmente decidí recrear las variables de usuario como variables del sistema y agregarlas a la ruta global.

Esto funcionó para un par de variables, pero tenía un par que aún no se expandía. Los recreé con nuevos nombres un par de veces, sin resultado. Sin embargo, las variables finalmente se expandieron correctamente en el shell del usuario después de deshabilitar UAC, reiniciar, volver a habilitar UAC y reiniciar nuevamente.


0

Tuve un problema muy similar: la solución simple era agregar un punto y coma después del alias en la definición de ruta .

Larga historia:

Estoy usando, node.jsasí que tengo un alias NODE_HOME definido a través de una variable de entorno de usuario. Luego agrego este alias a mi variable de entorno PATH .

Lo que encuentro es que después de un reinicio, el shell ha perdido el camino hacia NODE_HOME, por lo que npmetc. no funcionará. ¿Que esta pasando?

En la inspección, veo que NODE_HOME está configurado, pero que mágicamente ha adquirido un punto y coma.

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

PATH ahora termina en la cadena literal % NODE_HOME% en lugar de la ruta expandida a la carpeta del nodo:

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

Arreglarlo:

Primero, elimine el punto y coma errante del final de la definición de NODE_HOME .

En segundo lugar, agregue un punto y coma después del símbolo NODE_HOME en la definición de RUTA :

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

Ahora, cuando inicio un nuevo shell y expando PATH , encuentra NODE_HOME :

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

Y npmfunciona de nuevo!


-1

PROBLEMA : Mi problema fue solo sinilar, ya que te entiendo correctamente. Mi "Ruta" contenía ...;% ANT_HOME% \ bin; ... Tenía la variable ANT_HOME configurada correctamente en Variables del sistema (no del usuario) y CMD -> SET igual que "echo% ANT_HOME%" la imprimió correctamente .

SOLUCIÓN : Resolví el problema moviendo la carpeta de c: \ dev \ 3rd \ ant ... a c: ** Archivos de programa (x86) ** \ dev \ 3rd \ ant ...

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.