¿Cómo configuro la variable de entorno TEMP para el usuario del "Servicio de red"?

¿Cómo configuro la variable de entorno TEMP para el usuario del "Servicio de red"?

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 setxcomando 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:

  1. Configure una tarea para ejecutarla como el "servicio de red" del usuario.
  2. Deje los disparadores vacíos.
  3. Para la acción, haz que se ejecute cmd.execon los parámetros /c setx temp [target].
  4. Ejecute la tarea manualmente.
  5. 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 environmentcomando dentro de WMIC.

Respuesta2

Las variables de entorno de la Network Servicecuenta se almacenan en el Registro de Windows y pueden modificarse mediante regedit: HKEY_USERS\S-1-5-20\Environment.

información relacionada