Por qualquer motivo, em uma máquina específica, meu processo cmd não herda suas variáveis de ambiente do processo pai que o iniciou. Em vez disso, ele volta às configurações de ambiente "padrão", como se tivesse sido iniciado pelo explorer.
Uma maneira simples de demonstrar isso é abrir um prompt de comando e, em seguida, executar set Path=C:\Windows\System32\
, seguido de iniciar outro cmd
processo no mesmo prompt. A variável pode então ser visualizada executando set Path
.
Deve ser "C:\Windows\System32" (herdado do processo de inicialização), mas na minha máquina ele foi revertido para o padrão do meu ambiente.
Em vez disso, recebo o seguinte:
O que poderia estar causando isso? Parece quebrar todas as regras sobre como as variáveis de ambiente funcionam e afeta apenas esta máquina.
O problema é causado pela configuração AutoRun do processador de comandos . Esse pequeno "recurso" da linha de comando permite configurar um script para ser executado toda vez que um processo CMD for iniciado.
No meu caso, algo (possivelmente uma instalação do NVMW) registrou um script que atribuiu um
Path
valor completamente novo, ignorando totalmente qualquer valor existente.A remoção do
HKCU\Software\Microsoft\Command Processor\Autorun
valor restaurou a linha de comando ao seu comportamento normal.