我有一项服务,它调用一个批处理文件,该文件运行一个 Powershell 脚本,该脚本调用 SETX 来更新环境变量。环境变量发生了变化,但变化显然没有推送到我的服务中。一段时间后,该服务调用一个依赖于此环境变量更新的进程。如果它获得一个过时的环境变量,就会导致我的系统失败。从用户会话下运行的命令提示符调用的 SETX 确实会将新的环境变量推送到我的服务,所以我知道 SETX 在这种情况下有效,只是在从我的服务中运行时无效。更改环境变量很容易。将该更改推送到服务,显然很难。
我需要一种方法来将新的环境变量提供给我的服务启动的进程。这大概需要找到一种方法来从服务推送更新到环境变量。