Variáveis de ambiente no PATH Não expandido para o prompt de comando não administrativo?

10

Eu tenho uma máquina com Windows 7 que, quando o Prompt de Comando é executado por um usuário normal, não expande as variáveis de ambiente no %PATH% . Se o prompt de comando for executado como administrador (clique com o botão direito, Executar como administrador ), então %PATH% será apropriadamente expandido.

Especificamente, %PATH% para cmd.exe é executado como o usuário (exibido por set path ) é o seguinte:

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

... enquanto %PATH% para cmd.exe executado como Administrador é o seguinte:

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

Eu tentei fazer login como um novo usuário para criar um novo perfil, e o problema também persiste nesse perfil. HKEY_CURRENT_USER\Environment\PATH não existe e HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\Path corresponde ao caminho definido pelo sistema em Propriedades do computador - > Variáveis de ambiente.

Alguém tem alguma ideia de como isso pode ser ou onde posso procurar?

    
por Steve Vigneau 12.08.2011 / 19:24

4 respostas

7

Duas coisas que eu poderia tentar.

  1. Execute um sfc /scannow para ver se isso corrige problemas maiores.
  2. Verifique no registro a chave Path em HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment . Qual é o tipo . Deve dizer REG_EXPAND_SZ
por 12.08.2011 / 22:08
0

Eu encontrei o mesmo problema ao tentar configurar o Maven ...

Eu encontrei este postar no Superusuário que lançou alguma luz sobre o assunto, mas não funcionou para mim. O problema parecia ser sobre a elevação de direitos, já que um shell administrativo funcionaria, mas um shell de usuário não funcionaria. Eu finalmente decidi apenas recriar as variáveis do usuário como variáveis do sistema e adicioná-las ao caminho global.

Isso funcionou para algumas variáveis, mas eu tinha um par que ainda não se expandia. Eu recriou-os com novos nomes algumas vezes, sem sucesso. No entanto, as variáveis finalmente expandiram-se corretamente no shell do usuário depois que eu desativei o UAC, reiniciei, reativei o UAC e reiniciei novamente.

    
por 15.08.2011 / 06:05
0

Eu tive um problema muito semelhante - a solução simples era adicionar um ponto e vírgula após o alias na definição do caminho .

Longa história:

Estou usando node.js , portanto, tenho um alias NODE_HOME definido por meio de uma variável de ambiente do usuário. Em seguida, anexei esse alias à minha variável de ambiente PATH .

O que eu acho é que depois de uma nova inicialização, o shell perdeu o caminho para NODE_HOME , então npm etc. não funcionará. O que está acontecendo?

Na inspeção, vejo que NODE_HOME está definido, mas que magicamente adquiriu um ponto e vírgula.

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

PATH agora termina na string literal % NODE_HOME% em vez do caminho expandido para a pasta do nó:

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

Para corrigir:

Primeiro, exclua o ponto e vírgula errante do final da definição de NODE_HOME .

Segundo, adicione um ponto e vírgula após o símbolo NODE_HOME na definição de PATH :

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

Agora, quando eu inicio um novo shell e expando PATH , ele encontra NODE_HOME :

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

E npm funciona novamente!

    
por 18.05.2018 / 16:11
-1

PROBLEMA : Meu problema era apenas sinilar, como eu entendi corretamente. Meu "caminho" continha ...;% ANT_HOME% \ bin; ... Eu tinha a variável ANT_HOME definida corretamente em Variáveis do sistema (não usuário) e CMD - > SET igual a "echo% ANT_HOME%" imprimiu corretamente.

SOLUÇÃO : Eu resolvi o problema movendo a pasta de c: \ dev \ 3rd \ ant ... para c: ** Arquivos Programm (x86) ** \ dev \ 3rd \ ant ...

    
por 03.05.2017 / 20:33