Definindo variáveis de ambiente do usuário para o tomcat no Windows

Estou executando o tomcat 8 no windows 2012.

Eu tenho um webapp que precisa que uma variável de ambiente do usuário seja definida para ser executada.

Eu posso iniciar o tomcat e recuperar a variável com sucesso desta forma:

set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_65
set CATALINA_HOME=C:\TOOLS\apache-tomcat-8.0.30

set CATALINA_BASE=C:\Users\ULUser\tomcat\myapp
set MY_VAR=%CATALINA_BASE%
set PATH=%CATALINA_ROOT%\bin;%PATH%
set CATALINA_OPTS="-Djava.security.properties=%CATALINA_BASE%\conf\java.security.properties"

%CATALINA_HOME%\bin\catalina.bat run

Mas quando executo como um serviço do Windows, não consigo recuperar a variável MY_VAR usandoSystem.getenv("MY_VAR");

O Google não ajudou, porque todas as páginas mostram como definir as variáveis Java e Tomcat, mas não como definir as variáveis do usuário.

Não posso configurá-lo para a máquina inteira porque tenho várias instâncias do tomcat e cada uma precisa de uma variável de ambiente diferente.

Eu preferiria um método que envolva definir a variável na configuração do tomcat, e não na configuração do Windows.

Minha alternativa é usar o arquivo context.xml no tomcat e recuperar o valor com uma lógica que recupera as configurações de contexto.

Originalmente, eu postei isso no superusuário, mas foi sugerido que o stackoverflow é um lugar melhor para esta pergunta. Se eu receber boas respostas aqui, vou excluí-lo do superusuário.