Variabili d'ambiente nel PERCORSO non espanse per il prompt dei comandi non amministratore?


11

Ho una macchina Windows 7 che, quando il prompt dei comandi viene eseguito da un utente normale, non riesce ad espandere le variabili di ambiente in %PATH%. Se invece il prompt dei comandi viene eseguito come amministratore (clic destro, Esegui come amministratore ), %PATH%viene espanso in modo appropriato.

In particolare, %PATH%per l' cmd.exeesecuzione come l'utente (visualizzato tramite set path) è il seguente:

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

... mentre %PATH%per cmd.exeeseguire come amministratore è il seguente:

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

Ho provato ad accedere come nuovo utente per creare un nuovo profilo e il problema persiste anche su quel profilo. HKEY_CURRENT_USER\Environment\PATHnon esiste e HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\Pathcorrisponde al percorso definito a livello di sistema in Proprietà computer -> Variabili d'ambiente.

Qualcuno ha qualche idea di cosa potrebbe essere, o dove posso guardare?

Risposte:


8

Due cose che potrei provare.

  1. Esegui un sfc /scannowper vedere se questo risolve eventuali problemi più grandi in gioco.
  2. Controllare il registro per la Pathchiave HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment. Qual è il tipo . Dovrebbe direREG_EXPAND_SZ

Questo è stato. Se prendo una macchina normale e la imposto REG_SZsul problema si verifica, se la ripristino REG_EXPAND_SZviene riparata.
Steve Vigneau,

@Steve - Sweet! Ho anche imparato qualcosa riguardo :)
Nixphoe

1
Ma mi chiedo. Perché crea quelle variabili env con il tipo di valore errato nel registro? Non ricordo di aver avuto questo problema prima, sto usando Windows 8.1 Update 1 e sembra che questo problema possa essersi verificato anche in XP! support.microsoft.com/kb/329308
Adrián Pérez,

0

Ho riscontrato lo stesso problema durante il tentativo di configurare Maven ...

Ho trovato questo post su Superuser che ha fatto luce sul problema, ma non ha funzionato per me. Il problema sembrava riguardare l'elevazione dei diritti, dal momento che una shell dell'amministratore avrebbe funzionato, ma una shell dell'utente no. Alla fine ho deciso di ricreare le variabili utente come variabili di sistema e di aggiungerle al percorso globale.

Questo ha funzionato per un paio di variabili, ma avevo una coppia che non si sarebbe ancora espansa. Li ho ricreati con nuovi nomi un paio di volte, senza risultati. Tuttavia, le variabili si sono infine espanse correttamente nella shell dell'utente dopo aver disabilitato UAC, riavviato, UAC riabilitato e riavviato di nuovo.


0

Ho avuto un problema molto simile: la soluzione semplice era aggiungere un punto e virgola dopo l'alias nella definizione del percorso .

Lunga storia:

Sto usando node.jsquindi un alias NODE_HOME definito tramite una variabile di ambiente utente. Quindi aggiungo questo alias alla mia variabile d'ambiente PATH .

Quello che trovo è che dopo un riavvio, la shell ha perso il percorso di NODE_HOME, quindi npmecc. Non funzionerà. Cosa sta succedendo?

All'ispezione , vedo che NODE_HOME è impostato, ma che ha magicamente acquisito un punto e virgola.

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

PATH ora termina con la stringa letterale % NODE_HOME% invece del percorso espanso della cartella del nodo:

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

Per risolverlo:

Innanzitutto, elimina i punti e virgola errati dalla fine della definizione di NODE_HOME .

In secondo luogo, aggiungi un punto e virgola dopo il simbolo NODE_HOME nella definizione di PATH :

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

Ora, quando avvio una nuova shell ed espande PATH , trova NODE_HOME :

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

E npmfunziona di nuovo!


-1

PROBLEMA : il mio problema è stato solo sinistro, poiché ho capito bene. Il mio "Percorso" conteneva ...;% ANT_HOME% \ bin; ... Avevo impostato correttamente la variabile ANT_HOME in Variabili di sistema (non utente) e CMD -> SET uguale a "echo% ANT_HOME%" stampato correttamente .

SOLUZIONE : ho risolto il problema spostando la cartella da c: \ dev \ 3rd \ ant ... a c: ** Programmi (x86) ** \ dev \ 3rd \ ant ...

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.