SETX no funciona cuando se ejecuta como servicio

0

Tengo un servicio que invoca un archivo por lotes que ejecuta un script de Powershell que llama a SETX para actualizar una variable de entorno. La variable de entorno cambia, pero aparentemente el cambio no se ha introducido en mi servicio. Algún tiempo después, el servicio invoca un proceso que se basa en la actualización de esta variable de entorno. Si obtiene una variable de entorno obsoleta, hace que mi sistema falle. SETX llamado desde un indicador de comandos que se ejecuta en una sesión de usuario empuja las nuevas variables de entorno a mi servicio, por lo que sé que SETX funciona en este caso, pero no cuando se ejecuta desde mi servicio. Cambiar la variable de entorno es fácil. Presionar ese cambio al servicio, eso es difícil aparentemente.

Necesito una forma de obtener nuevas variables de entorno para los procesos iniciados por mi servicio. Presumiblemente, esto implica encontrar una manera de enviar actualizaciones a las variables de entorno desde un servicio.

Void Star
fuente
¿Intentaste reiniciar el servicio?
DavidPostill
Este es un problema persistente en los reinicios. Por supuesto, el servicio obtiene nuevas variables de entorno en un reinicio, pero lo necesito para obtener nuevas variables mientras se ejecuta. En particular, estoy configurando DEVPATH.
Void Star
¿Qué usuario está ejecutando tu servicio?
DavidPostill
Estoy ejecutando bajo una cuenta de usuario de dominio. No es la misma cuenta que utilizo para iniciar sesión que para desarrollar y administrar mi sistema en general, pero para evitar confusiones últimamente, he estado iniciando sesión con la misma cuenta en la que ejecuto el servicio. Aunque no parece hacer una diferencia.
Void Star