Por que o valor da variável de ambiente PATH é diferente se abrirmos o prompt de comando de diferentes locais?

0

Eu tenho um pacote que adiciona e remove uma entrada (digamos C: \ my_entry) para a variável de ambiente PATH durante a instalação e a desinstalação, respectivamente. Eu sou capaz de ver que a entrada está sendo adicionado / removido para / da variável PATH, verificando a chave de registro HKLM \ SYSTEM \ CurrentControlSet \ Controle \ Session Manager \ Ambiente \ Path .

Mas observei valores diferentes para a variável de ambiente PATH no prompt de comando.

Após a instalação

Se eu abrir o prompt de comando como Win + R, digite cmd e, em seguida, digite, eu posso ver C: \ my_entry na variável PATH.

Se eu abrir o prompt de comando (cmd.exe) do diretório C: \ Windows \ System32, não conseguiremos C: \ my_entry na variável PATH.

Após a desinstalação

Se eu abrir o prompt de comando como Win + R, digite cmd e, em seguida, insiro, ainda posso ver C: \ my_entry na variável PATH, embora ele tenha sido removido do registro.

Por favor, deixe-me saber por que o valor da variável de ambiente PATH é diferente se abrirmos o prompt de comando de diferentes locais? E por que o valor da variável de ambiente PATH é diferente no prompt de comando do valor presente no Registro?

    
por gopu 24.08.2016 / 12:58

1 resposta

0

Variáveis de ambiente são geralmente herdadas - um novo processo obtém uma cópia de qualquer lançamento, não do registro. (ProcExp ou Process Hacker podem mostrar o env de cada processo individual, junto com a hierarquia real.)

As únicas vezes que as chaves de registro são lidas são quando você efetua login e quando algum programa (como um instalador) informa a todos os aplicativos para atualizar seu env. (Normalmente, apenas o Explorer reage a esse pedido.)

Assim, pode ser que um processo do Explorer (aquele que lida com o shell da barra de tarefas) tenha atualizado seu ambiente após a instalação, mas o que o manipulador de janelas da pasta não o fez. (Ou talvez você tenha executado cmd de um gerenciador de arquivos de terceiros.)

    
por 24.08.2016 / 13:43