Variáveis de ambiente não carregando na inicialização

1

Estou encontrando um problema estranho em que não parece que minhas variáveis de ambiente estejam carregando corretamente sempre que o Windows é inicializado. Isso foi realmente uma dor para descobrir o que estava acontecendo e eu fiz isso simplesmente por sorte. Originalmente, percebi o problema sempre que reiniciava ou inicializava e tentava iniciar meu conjunto padrão de aplicativos. Em particular, eu tentaria iniciar o Eclipse e ele não conseguiria iniciar e agir como se eu não tivesse um JDK.

Enquanto resolvia isso, eu tentava fazer o eco das minhas variáveis de ambiente (especificamente, Path) e obtinha o seguinte:

C:\Windows\System32>echo %PATH%

C:\Windows\system32\NV;.;

Neste ponto, eu verificaria minhas variáveis de ambiente e elas ficariam bem. Depois de um tempo, percebi que, depois de realizar essa verificação, as variáveis seriam muito bem:

C:\Windows\System32>echo %PATH%

C:\Program Files... [Many statements] ...;C:\apache-maven-3.0.4\bin

Pelo que entendi, ir para as variáveis de ambiente as força a recarregar ou atualizar. Não estou familiarizado com o modo como as variáveis de ambiente são carregadas na inicialização, mas parece que esse processo não está funcionando. Este é o meu computador de trabalho e há muitos scripts de segundo plano que são executados na inicialização, então eu suspeito que isso possa ser o culpado.

Se alguém tiver alguma idéia do que pode estar acontecendo aqui, eu apreciaria o feedback, mas estou principalmente imaginando se alguém sabe como posso forçar manualmente a atualização dessas variáveis na inicialização? Um pequeno script que eu possa executar na inicialização ou mesmo na frente de alguns aplicativos importantes para garantir que as variáveis de ambiente sejam carregadas seria ótimo. Agradecemos antecipadamente por qualquer entrada!

    
por ggrigery 05.12.2012 / 15:29

2 respostas

0

Há um utilitário de linha de comando incluído em alguns Kits de Recursos do Windows chamados setx que permite fazer alterações permanentes em variáveis de ambiente, em vez de variáveis temporárias. Pode ser usado em um arquivo de lote para definir sua variável de ambiente PATH para o que você deseja que seja.

    
por 26.12.2012 / 18:16
0

Eu pareço ter esse problema meses atrás com um software que extrai informações de licença das variáveis ambientais. Nós estávamos definindo as variáveis dos USUÁRIOS, mas por alguma razão eles não estavam ficando consistentemente. Acabei criando novas variáveis SYSTEM, (que não mudam com base no usuário atual) e não tivemos nenhum problema desde então.

Ou você pode criar um arquivo em lote muito simples e colocá-lo na sua pasta de inicialização.

// risque isso, as variáveis configuradas em uma janela de comando só persistem dentro daquela instância da janela de comando

VBscript para o resgate!

Set wshShell = CreateObject( "WScript.Shell" )
Set wshSystemEnv = wshShell.Environment( "SYSTEM" )

' Display the current value
' comment out to remove dialog box
WScript.Echo "MyVariable=" & wshSystemEnv( "MyVariable" )

wshSystemEnv( "MyVariable" ) = "MyNewValue" 
' WScript.Echo "MyVariable=" & wshSystemEnv( "MyVariable" )

' Delete the environment variable
' uncomment to enable
'wshSystemEnv.Remove( "MyVariable" )

Set wshSystemEnv = Nothing
Set wshShell     = Nothing

salve em um arquivo com a extensão ned como * .VBS

    
por 05.12.2012 / 16:08