Eu tenho um serviço que invoca um arquivo de lote que executa um script Powershell que chama SETX para atualizar uma variável de ambiente. A variável de ambiente é alterada, mas a mudança aparentemente não é enviada para o meu serviço. Algum tempo depois, o serviço invoca um processo que depende da atualização dessa variável de ambiente. Se obtiver uma variável de ambiente obsoleta, isso fará com que meu sistema falhe. SETX chamado a partir de um prompt de comando em execução em uma sessão de usuário empurra as variáveis de ambiente novas para o meu serviço, então eu sei que o SETX funciona neste caso, mas não quando está sendo executado do meu serviço. Alterar a variável de ambiente é fácil. Empurrando essa mudança para o serviço, isso é difícil, aparentemente.
Eu preciso de uma maneira de obter novas variáveis de ambiente para processos iniciados pelo meu serviço. Presumivelmente, isso envolve encontrar uma maneira de enviar atualizações para variáveis de ambiente de um serviço.