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