É realmente muito difícil. Você pode usar o comando setx
para definir variáveis de ambiente persistentes para outros usuários, mas isso não funcionará para NetworkService, porque as contas de serviço não têm senhas (portanto, suas credenciais sempre serão rejeitadas).
A única maneira que eu conheço para fazer isso é usando o agendador de tarefas:
- Configure uma tarefa para ser executada como o "serviço de rede" do usuário.
- Deixe os acionadores vazios.
- Para a ação, execute
cmd.exe
com os parâmetros/c setx temp [target]
. - Execute a tarefa manualmente.
- Excluir a tarefa.
Isso funcionará para definir uma variável de ambiente persistente para o usuário NetworkService. Quanto a saber se isso funcionará com êxito para realocar os arquivos temporários desse usuário ou se causará efeitos colaterais imprevisíveis, não posso dizer com certeza. Talvez seja necessário reinicializar para verificar se ele está colocando os arquivos temporários onde você deseja.
Você pode verificar se a variável de ambiente foi alterada para o usuário correto usando o comando environment
no WMIC.