Variables d'environnement dans PATH non développées pour l'invite de commande non-administrateur?

11

J'ai une machine Windows 7 qui, lorsque l'invite de commandes est exécutée par un utilisateur normal, ne parvient pas à développer les variables d'environnement dans le %PATH%. Si l'invite de commandes est plutôt exécutée en tant qu'administrateur (clic droit, Exécuter en tant qu'administrateur ), elle %PATH%est correctement développée.

Plus précisément, %PATH%pour cmd.exeexécuter en tant qu'utilisateur (affiché via set path) est comme suit:

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

... alors que %PATH%pour cmd.exeexécuter en tant qu'administrateur est le suivant:

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

J'ai essayé de me connecter en tant que nouvel utilisateur pour créer un nouveau profil, et le problème persiste également sur ce profil. HKEY_CURRENT_USER\Environment\PATHn'existe pas et HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\Pathcorrespond au chemin défini à l'échelle du système dans Propriétés de l'ordinateur -> Variables d'environnement.

Quelqu'un at-il une idée de ce que cela pourrait être, ou où je peux regarder?

Steve Vigneau
la source

Réponses:

8

Deux choses que je pourrais essayer.

  1. Exécutez un sfc /scannowpour voir si cela résout des problèmes plus importants en jeu.
  2. Vérifiez la Pathclé dans le registre HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment. Quel est le type . Il faut direREG_EXPAND_SZ
Nixphoe
la source
C'était ça. Si je prends une machine normale et REG_SZque je la mets en place, le problème se produit, si je la remets en place, REG_EXPAND_SZelle est corrigée.
Steve Vigneau
@Steve - Sweet! J'ai même appris quelque chose à ce sujet :)
Nixphoe
1
Mais je me demande. Pourquoi il crée ces vars env avec le mauvais type de valeur dans le Registre? Je ne me souviens pas avoir rencontré ce problème auparavant, j'utilise Windows 8.1 Update 1 et il semble que ce problème se soit produit même sous XP! support.microsoft.com/kb/329308
Adrián Pérez
0

J'ai rencontré le même problème en essayant de configurer Maven ...

J'ai trouvé ce post sur Superuser qui a éclairé le problème, mais cela n'a pas fonctionné pour moi. Le problème semblait concerner l'élévation des droits, car un shell administrateur fonctionnerait, mais pas un shell utilisateur. J'ai finalement décidé de recréer les variables utilisateur en tant que variables système à la place et de les ajouter au chemin global.

Cela a fonctionné pour quelques variables, mais j'avais une paire qui ne se développerait toujours pas. Je les ai recréés avec de nouveaux noms plusieurs fois, en vain. Cependant, les variables se sont finalement développées correctement dans le shell utilisateur après avoir désactivé l'UAC, redémarré, réactivé l'UAC et redémarré à nouveau.

Joe Internet
la source
0

J'ai eu un problème très similaire - la solution simple était d'ajouter un point-virgule après l'alias dans la définition du chemin .

Longue histoire:

J'utilise node.jsdonc un alias NODE_HOME défini via une variable d'environnement utilisateur. J'ajoute ensuite cet alias à ma variable d'environnement PATH .

Ce que je trouve, c'est qu'après un redémarrage, le shell a perdu le chemin vers NODE_HOME, donc npmetc. ne fonctionnera pas. Que se passe-t-il?

À l'inspection, je vois que NODE_HOME est défini, mais qu'il a magiquement acquis un point-virgule.

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

PATH se termine maintenant dans la chaîne littérale % NODE_HOME% au lieu du chemin développé vers le dossier du nœud:

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

Réparer:

Tout d'abord, supprimez le point-virgule errant de la fin de la définition de NODE_HOME .

Deuxièmement, ajoutez un point-virgule après le symbole NODE_HOME dans la définition de PATH :

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

Maintenant, quand je démarre un nouveau shell et développe PATH , il trouve NODE_HOME :

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

Et npmça marche encore!

Oscar Bravo
la source
-1

PROBLÈME : Mon problème n'était que sinilaire, si je vous ai bien compris. Mon "chemin" contenait ...;% ANT_HOME% \ bin; ... j'avais la variable ANT_HOME correctement définie sous Variables système (pas utilisateur), et CMD -> SET identique à "echo% ANT_HOME%" l'a imprimée correctement .

SOLUTION : J'ai résolu le problème en déplaçant le dossier de c: \ dev \ 3rd \ ant ... vers c: ** Program Files (x86) ** \ dev \ 3rd \ ant ...

Lala.box
la source