AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / Perguntas / 8855
Accepted
Chad Braun-Duin
Chad Braun-Duin
Asked: 2009-05-16 20:09:31 +0800 CST2009-05-16 20:09:31 +0800 CST 2009-05-16 20:09:31 +0800 CST

Como você adiciona uma variável de ambiente do Windows sem reiniciar?

  • 772

Gostaria de adicionar uma variável de ambiente a uma máquina Windows (desktop ou servidor) e poder usá-la sem reinicializar essa máquina.

Digamos que você tenha um servidor de produção que hospeda uma variedade de aplicativos e um novo aplicativo precisa de uma variável de ambiente específica para ser executado. Você não deseja reiniciá-lo enquanto os usuários estiverem conectados aos seus outros aplicativos. Que escolhas você tem? Eu não gosto da opção de esperar até um bom momento para reiniciar. Deve haver uma maneira melhor. o que estou perdendo?

windows environment-variables
  • 7 7 respostas
  • 432225 Views

7 respostas

  • Voted
  1. Best Answer
    Charlie
    2009-05-16T20:16:34+08:002009-05-16T20:16:34+08:00

    As alterações nas variáveis ​​de ambiente devem entrar em vigor imediatamente, se você fizer a alteração na caixa de diálogo principal Propriedades 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_SETTINGCHANGEmensagem para todas as janelas para informá-las sobre a alteração. Todos os programas gerados pelo Explorer depois disso devem obter o ambiente atualizado, embora os programas já em execução não, a menos que lidem com a mensagem de alteração de configuração.

    Não consigo dizer pela descrição do seu problema qual 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

    • 188
  2. Ron AndKim Stengel
    2013-03-20T22:36:14+08:002013-03-20T22:36:14+08:00
    1. Em um prompt de comando digite:runas /user:yourusername@yourdomain cmd
    2. Ele abrirá um novo prompt do cmd e digite: taskkill /f /im explorer.exe
    3. Então digite:explorer.exe

    Agora, após fechar todos os prompts de comando, você verá que a PATHvariável foi realmente atualizada.

    Todos os prompts de comando devem ser fechados. Reabra um novo prompt de comando, digite path e você verá os novos dados.

    • 83
  3. nedm
    2009-05-16T22:11:58+08:002009-05-16T22:11:58+08:00

    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 de reinicialização, alguns programas podem antes de poderem usar as novas variáveis. Um bom exemplo disso é ter que abrir uma nova janela de prompt de comando depois de adicionar um PATH (sim, fui enganado por isso).

    • 20
  4. testworks
    2013-11-27T14:30:54+08:002013-11-27T14:30:54+08:00

    Embora eu não tenha reputação suficiente para comentar a resposta mais votada a esta pergunta, gostaria de afirmar que ela não é exatamente correta. Eu sei disso porque não importa qual solução alternativa eu ​​tentei neste post, nada realmente funcionou.

    O artigo kb vinculado a essa resposta realmente afirma que:

    No entanto, observe que as modificações nas variáveis ​​de ambiente não resultam em alteração imediata. Por exemplo, se você iniciar outro prompt de comando após fazer as alterações, as variáveis ​​de ambiente refletirão os valores anteriores (não os atuais). As alterações não entram em vigor até que você faça logoff e depois faça logon novamente.

    A parte sobre as variáveis ​​de ambiente redefinindo para os valores anteriores após recarregar o prompt de comando é exatamente o que experimentei no Windows Server 2008.

    O artigo prossegue dizendo:

    Para efetuar essas alterações sem precisar fazer logoff, transmita uma mensagem WM_SETTINGCHANGE para todas as janelas do sistema, para que todos os aplicativos interessados ​​(como Windows Explorer, Gerenciador de programas, Gerenciador de tarefas, Painel de controle e assim por diante) possam executar uma atualização.

    Isso não significa que o Explorer transmita uma mensagem WM_SETTINGCHANGE depois de alterar as variáveis ​​de ambiente do sistema ou que ele 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.

    • 17
  5. Pedro Sousa
    2015-11-19T09:00:44+08:002015-11-19T09:00:44+08:00

    Faça o env. variável disponível imediatamente:

    1. Open a shell
    

    Dependendo da variável de ambiente que você deseja alterar, faça o seguinte: (suponha que você deseja adicionar um novo PATH para um aplicativo instalado recentemente) Então, no prompt do shell, digite o seguinte:

    2. PATH=%PATH%;C:\type\your\new\path\here
    

    verifique se seu novo caminho foi adicionado à variável de ambiente

    3. echo %PATH%
    

    Feito.

    Disponibilize a variável na reinicialização

    1. Press WinLogoKey+Pause/Break
    2. On the left pane, press 'Advanced System Settings'
    3. On the 'Advanced' tab, click 'Environment Variables'
    4. In 'System Variables' choose the one you want to modify
    5. Click Ok
    

    Testado e funcionando no Windows 7/10

    • 5
  6. Doug
    2018-12-08T07:40:49+08:002018-12-08T07:40:49+08:00

    Como as pessoas ainda não adicionaram essa resposta, gostaria de mencionar que você pode definir variáveis ​​de sistema permanentes que sobrevivem à reinicialização com o SETXcomando .

    por exemplo

    setx PATH "%PATH%;c:\temp\my\new\path"
    

    Observe que o acima não funcionará na janela de comando atual e exigirá que você abra uma nova janela de comando antes de entrar em vigor. Como resultado, dependendo do caso de uso; você pode precisar combinar isso com uma das outras técnicas acima.

    • 5
  7. Odin
    2010-08-10T12:26:22+08:002010-08-10T12:26:22+08:00

    Uma possível solução para serviços é executá-los temporariamente como outro usuário (diferente de 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 serviço, clique em propriedades do serviço e, na segunda guia, insira as credenciais de logon de um usuário. Reinicie o serviço e suas variáveis ​​de ambiente devem estar atualizadas.

    Se este for um usuário que foi registrado, isso deve funcionar sem problemas. Se você estiver usando a conta de usuário atual, reiniciar o explorer.exe também pode ser necessário. Observe também que a execução de serviços como conta de usuário normal pode criar riscos de segurança.

    • 3

relate perguntas

  • O Vanilla Powershell é um idioma suficiente para administradores do Windows e do servidor de banco de dados?

  • Executando um .exe de um arquivo .asp usando wscipt no Windows Server 2003

  • Melhor backup de ambiente misto (OS X + Windows)? [fechado]

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Resolver o nome do host do endereço IP

    • 8 respostas
  • Marko Smith

    Como posso classificar a saída du -h por tamanho

    • 30 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    Qual é o utilitário de linha de comando no Windows para fazer uma pesquisa reversa de DNS?

    • 14 respostas
  • Marko Smith

    Como verificar se uma porta está bloqueada em uma máquina Windows?

    • 4 respostas
  • Marko Smith

    Qual porta devo abrir para permitir a área de trabalho remota?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    MikeN No Nginx, como posso reescrever todas as solicitações http para https mantendo o subdomínio? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 Qual é a diferença entre colchetes duplos e simples no bash? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch Como altero a senha da minha chave privada? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt Como funciona a sub-rede IPv4? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve