Me gustaría agregar una variable de entorno a una máquina con Windows (escritorio o servidor) y poder usarla sin reiniciar esa máquina.
Supongamos que tiene un servidor de producción que aloja una variedad de aplicaciones y una nueva aplicación necesita una variable de entorno particular para ejecutarse. No desea reiniciarlo mientras los usuarios están conectados a sus otras aplicaciones. ¿Qué opciones tienes? No me gusta la opción de esperar hasta un buen momento para reiniciar. Debe haber una mejor manera. ¿Qué me estoy perdiendo?
windows
environment-variables
Chad Braun-Duin
fuente
fuente
Respuestas:
Los cambios en las variables de entorno deben tener efecto de inmediato, si realiza el cambio a través del cuadro de diálogo principal de Propiedades para la computadora en cuestión (vaya a Mi PC | Propiedades | Avanzado | Variables de entorno). Después de guardar los cambios, Explorer transmite un
WM_SETTINGCHANGE
mensaje a todas las ventanas para informarles sobre el cambio. Cualquier programa generado a través de Explorer después de esto debería obtener el entorno actualizado, aunque los programas que ya se ejecutan no lo harán, a menos que manejen el mensaje de cambio de configuración.No puedo decir a partir de la descripción de su problema qué problema específico tiene con esto. ¿Puede contarnos más sobre el escenario específico que no funciona?
Este artículo de KB también puede ser útil: Cómo propagar variables de entorno al sistema
fuente
runas /user:yourusername@yourdomain cmd
taskkill /f /im explorer.exe
explorer.exe
Ahora, después de cerrar todas las solicitudes de comando, verá que la
PATH
variable se ha actualizado realmente.Todas las indicaciones de comando deben estar cerradas. Vuelva a abrir un nuevo símbolo del sistema, escriba path y verá los nuevos datos.
fuente
ctrl+alt+shift
. Eso saldrá limpiamente de Windows Explorer. En Vista +, el cuadro de diálogo de cierre de Windows es más difícil de encontrar (pero aún está presente, al menos hasta el 7 (no está seguro sobre 8 y 10)), por lo que hay un segundo método. ctrl + shift + clic derecho en una parte vacía del menú de inicio y elija salir del explorador. En 8, la opción de salida es la misma, pero utiliza la barra de tareas, no el menú de inicio.Una cosa a tener en cuenta es que muchos programas obtienen las variables de entorno cuando se inician por primera vez, por lo que si bien Windows no necesita reiniciar, algunos programas pueden hacerlo antes de poder usar las nuevas variables. Un buen ejemplo de esto es tener que abrir una nueva ventana de símbolo del sistema después de agregar una RUTA (sí, me he tropezado con esto).
fuente
Si bien no tengo suficiente reputación para comentar sobre la respuesta más votada a esta pregunta, me gustaría decir que no es exactamente correcta. Sé esto porque no importa qué solución probé en esta publicación, nada realmente funcionó.
El artículo de kb vinculado a esa respuesta en realidad afirma que:
La parte sobre el restablecimiento de las variables de entorno a los valores anteriores después de volver a cargar el símbolo del sistema es exactamente lo que experimenté en Windows Server 2008.
El artículo continúa diciendo:
Eso no implica que Explorer difunda un mensaje WM_SETTINGCHANGE una vez que haya cambiado las variables de entorno del sistema, o que realmente funcione. No estoy seguro de cómo haría lo que se sugiere en el artículo de KB (para propagar los cambios inmediatamente) desde el símbolo del sistema.
fuente
Haz el env. variable disponible de inmediato:
Dependiendo de la variable de entorno que desee cambiar, haga lo siguiente: (suponga que desea agregar una nueva RUTA para una aplicación instalada recientemente) Entonces, en el símbolo del sistema, escriba lo siguiente:
verifique que su nueva ruta se haya agregado a la variable de entorno
Hecho.
Hacer que la variable esté disponible al reiniciar
Probado y trabajando en Windows 7/10
fuente
Una posible solución para los servicios es ejecutarlos temporalmente como otro usuario (que no sea LocalSystem, LocalService, NetworkService). Por ejemplo, para el servicio Apache, esto funciona sin ningún problema. Para cambiar la cuenta de servicio, abra la consola services.msc, seleccione servicio, haga clic en propiedades del servicio y en la segunda pestaña ingrese las credenciales de inicio de sesión para un usuario. Reinicie el servicio y sus variables de entorno deben estar actualizadas.
Si se trata de un usuario que ha iniciado sesión, debería funcionar sin problemas. Si está utilizando una cuenta de usuario actual, también puede ser necesario reiniciar explorer.exe. También tenga en cuenta que la ejecución de servicios como cuenta de usuario normal puede crear riesgos de seguridad.
fuente
Como la gente aún no ha agregado esta respuesta, quería mencionar que puede establecer variables de sistema permanentes que sobrevivan al reinicio con el comando SETX.
p.ej
Tenga en cuenta que lo anterior no funcionará en la ventana de comandos actual y requerirá que abra una nueva ventana de comandos antes de que surta efecto. Como resultado, dependiendo del caso de uso; Es posible que deba combinar esto con una de las otras técnicas anteriores.
Consulte la siguiente URL para obtener detalles adicionales :
fuente