Eu gostaria de adicionar uma variável de ambiente a uma máquina Windows (desktop ou servidor) e poder usá-la sem reiniciar a máquina.
Digamos que você tenha um servidor de produção que hospede uma variedade de aplicativos e um novo aplicativo precise de uma variável de ambiente específica para executar. Você não deseja reiniciá-lo enquanto os usuários estiverem conectados aos seus outros aplicativos. Que escolhas você tem? Não gosto da opção esperar até um bom momento para reiniciar. Deve haver uma maneira melhor. o que estou perdendo?
windows
environment-variables
Chad Braun-Duin
fonte
fonte
Respostas:
As alterações nas variáveis de ambiente devem entrar em vigor imediatamente, se você fizer a alteração na caixa de diálogo Propriedades principal do computador em questão (vá para Meu Computador | Propriedades | Avançado | Variáveis de Ambiente). Depois que as alterações são salvas, o Explorer transmite uma
WM_SETTINGCHANGE
mensagem para todas as janelas para informá-las sobre a alteração. Qualquer programa gerado pelo Explorer depois disso deve obter o ambiente atualizado, embora os programas em execução não o façam, a menos que lidem com a mensagem de alteração de configuração.Não sou capaz de dizer pela descrição do seu problema que problema específico você está tendo com isso. Você pode nos contar mais sobre o cenário específico que não está funcionando?
Este artigo da KB também pode ser útil: Como propagar variáveis de ambiente para o sistema
fonte
runas /user:yourusername@yourdomain cmd
taskkill /f /im explorer.exe
explorer.exe
Agora, após fechar todos os prompts de comando, você verá que a
PATH
variável foi realmente atualizada.Todos os prompts de comando devem estar fechados. Reabra um novo prompt de comando, digite path e você verá os novos dados.
fonte
ctrl+alt+shift
. Isso sairá corretamente do Windows Explorer. No Vista +, a caixa de diálogo das janelas de desligamento é mais difícil de encontrar (mas ainda está presente, pelo menos até o 7 (não tenho certeza sobre 8 e 10)), então existe um segundo método. ctrl + shift + clique com o botão direito do mouse em uma parte vazia do menu Iniciar e escolha sair do Explorer. Em 8, a opção de saída é a mesma, mas você usa a barra de tarefas e não o menu Iniciar.Uma coisa a ter em mente é que muitos programas obtêm as variáveis ambientais quando são iniciados pela primeira vez; portanto, embora o Windows possa não precisar ser reiniciado, alguns programas podem antes de poder usar as novas variáveis. Um bom exemplo disso é ter que abrir uma nova janela de prompt de comando após adicionar um PATH (sim, eu fui enganado por isso).
fonte
Embora eu não tenha reputação suficiente para comentar a resposta mais votada a essa pergunta, gostaria de afirmar que não está exatamente correto. Eu sei disso porque não importa qual solução alternativa tentei neste post, nada realmente funcionou.
O artigo kb vinculado a essa resposta na verdade afirma que:
A parte sobre as variáveis de ambiente que foram redefinidas para os valores anteriores após recarregar o prompt de comando é exatamente o que experimentei no Windows Server 2008.
O artigo continua dizendo:
Isso não implica que o Explorer transmita uma mensagem WM_SETTINGCHANGE depois de alterar as variáveis de ambiente do sistema ou que realmente funcione. Não tenho certeza de como você faria o que é sugerido no artigo da KB (para propagar as alterações imediatamente) no prompt de comando.
fonte
Faça o env. variável disponível imediatamente:
Dependendo da variável de ambiente que você deseja alterar, faça o seguinte: (suponha que você queira adicionar um novo PATH para um aplicativo instalado recentemente). Portanto, no prompt do shell, digite o seguinte:
verifique se seu novo caminho foi adicionado à variável de ambiente
Feito.
Disponibilize a variável na reinicialização
Testado e funcionando no Windows 7/10
fonte
Uma solução possível para os serviços é executá-los temporariamente como outro usuário (que não seja LocalSystem, LocalService, NetworkService). Por exemplo, para o serviço Apache, isso funciona sem problemas. Para alterar a conta de serviço, abra o console services.msc, selecione service, clique em service properties e, na segunda guia, insira as credenciais de logon para um usuário. Reinicie o serviço e suas variáveis de ambiente devem estar atualizadas.
Se este é um usuário que efetuou logon, isso deve funcionar sem problemas. Se você estiver usando uma conta de usuário atual, a reinicialização do explorer.exe também poderá ser necessária. Observe também que a execução de serviços como uma conta de usuário normal pode criar riscos à segurança.
fonte
Como as pessoas ainda não adicionaram essa resposta, gostaria de mencionar que você pode definir variáveis permanentes do sistema que sobrevivam à reinicialização com o comando SETX.
por exemplo
Observe que o descrito acima não funcionará na janela de comando atual e exigirá que você abra uma nova janela de comando antes que ela entre em vigor. Como resultado, dependendo do caso de uso; pode ser necessário combinar isso com uma das outras técnicas acima.
Consulte o seguinte URL para obter detalhes adicionais :
fonte