Tenemos un sistema que utiliza llamadas Path.GetTempFile y Path.GetTempPath para trabajar con archivos temporales con bastante frecuencia. Este sistema también se ejecuta como usuario del "Servicio de red". Estamos descubriendo que nos estamos quedando sin espacio en la unidad C (para otros problemas, nuestros archivos temporales se limpian correctamente) y nos gustaría poder mover el directorio temporal a una unidad diferente.
La solución más sencilla para esto parece ser cambiar las variables de entorno TMP o TEMP para el usuario del Servicio de red, pero parece que solo puedo configurar mi propio usuario o las variables de "sistema" que el perfil de usuario del Servicio de red sobrescribe. ¿Cómo configuro estas variables para el usuario del servicio de red?
Respuesta1
En realidad es bastante difícil. Puede usar el setx
comando para establecer variables de entorno persistentes para otros usuarios, pero esto no funcionará para NetworkService, porque las cuentas de servicio no tienen contraseñas (por lo que sus credenciales siempre serán rechazadas).
La única forma que conozco de hacer esto es usando el programador de tareas:
- Configure una tarea para ejecutarla como el "servicio de red" del usuario.
- Deje los disparadores vacíos.
- Para la acción, haz que se ejecute
cmd.exe
con los parámetros/c setx temp [target]
. - Ejecute la tarea manualmente.
- Eliminar la tarea.
Esto funcionará para establecer una variable de entorno persistente para el usuario de NetworkService. En cuanto a si esto funcionará exitosamente para reubicar los archivos temporales de ese usuario, o si causará efectos secundarios impredecibles, no puedo decirlo con certeza. Es posible que deba reiniciar para verificar si está colocando los archivos temporales donde los desea.
Puede verificar que la variable de entorno se haya cambiado para el usuario correcto utilizando el environment
comando dentro de WMIC.
Respuesta2
Las variables de entorno de la Network Service
cuenta se almacenan en el Registro de Windows y pueden modificarse mediante regedit: HKEY_USERS\S-1-5-20\Environment
.