Pregunta ¿Cómo agregar una variable de entorno de Windows sin reiniciar?


Probablemente sea una respuesta fácil, pero nunca he podido encontrarla buscando en Google. Simplemente 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 que sea un buen momento para reiniciar. Tiene que haber una mejor manera. ¿Qué me estoy perdiendo?


162
2018-05-16 04:09


origen


Tuve el mismo problema. Leí en alguna parte que matar el proceso explorer.exe actualizaría las variables y funcionó. Entonces solo tuve que ejecutar el explorador desde el administrador de tareas. - user19694
Debe cerrar el símbolo del sistema y volver a abrirlo para que se actualicen las variables de la ruta. Las variables se cargan cuando se inicia cmd. - NiLInfinite


Respuestas:


Los cambios en las variables de entorno deberían entrar en vigencia de inmediato, si realiza el cambio a través del cuadro de diálogo Propiedades principal de la computadora en cuestión (vaya a Mi PC | Propiedades | Avanzadas | Variables de entorno). Una vez guardados los cambios, Explorer emite un WM_SETTINGCHANGE Mensaje a todas las ventanas para informarles del cambio. Cualquier programa generado a través de Explorer después de esto debería obtener el entorno actualizado, aunque los programas que ya están en ejecución no lo harán, a menos que manejen el mensaje de cambio de configuración.

No puedo decir de su descripción del problema qué problema específico tiene con esto. ¿Puedes decirnos más sobre el escenario específico que no está funcionando?

Este artículo de KB también puede ser de uso: Cómo propagar variables de entorno al sistema.


153
2018-05-16 04:16



Ok, supongo que debí haber visto este comportamiento en un servicio en ejecución o algo así. Agregué una nueva variable de entorno usando el método descrito anteriormente. Luego, pude ver el valor después de abrir un nuevo símbolo del sistema y usar el comando "echo% <myvar>%. Gracias a los dos por sus respuestas. - Chad Braun-Duin
Para los usuarios de PowerShell, este fragmento de código puede ser de ayuda: poshcode.org/2049 - Anders Zommarin
Si usa cmd, necesita reiniciarlo si cambia la variable env. - Neil McGuigan
Acabo de instalar Scala en mi PC pero el PATH no se actualizó; probablemente el MSI no transmitió el mensaje WM_SETTINGCHANGE. Agregué una variable de SISTEMA ficticia, es decir, CHANGE_TO_UPDATE = z, que actualizo para activar el mensaje WM_SETTINGCHANGE - problema resuelto - Darren Bishop
Gracias por el CHANGE_TO_UPDATE = z, esa es exactamente la solución que quería. Funcionó para mí y no tuve que reiniciar. - iopq


  1. En un símbolo del sistema escriba: runas /user:yourusername@yourdomain cmd
  2. Se abrirá un nuevo indicador de cmd, luego escriba: taskkill /f /im explorer.exe
  3. A continuación, escriba: explorer.exe

Ahora, después de cerrar todas las indicaciones de comando, verá que PATH La variable ha sido verdaderamente actualizada.

Todas las instrucciones de comando deben estar cerradas. Vuelva a abrir un nuevo símbolo del sistema, escriba ruta y verá los nuevos datos.


54
2018-03-20 06:36



De todas las respuestas en esta página, esta es la única que realmente funcionó para mí. ¡¡Gracias!! - CoreDumpError
+1 ....................... - Ijas Ameenudeen
Esto funcionó para mí. Creo que el problema es que si ejecuta cmd a través del explorador (para evitar que tenga que escribir rutas largas), el explorador nunca se cierra, incluso si cierra todas las ventanas del explorador. Gracias por la solución :) - Steve Mc
Trabajó para mi. También puede usar el Administrador de tareas para finalizar las tareas del explorador y reiniciarlo (Archivo> Ejecutar tarea nueva). - adabyron
Uhh Por favor, no mates a Windows Explorer a menos que se cuelgue uno de sus procesos. En su lugar, abra el cuadro de diálogo de ventanas de apagado y cancele mientras mantiene presionado ctrl+alt+shift. Eso saldrá limpiamente de Windows Explorer. En Vista + el cuadro de diálogo de ventanas de apagado es más difícil de encontrar (pero todavía está presente, al menos hasta el 7 (no estoy seguro acerca de 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 usa la barra de tareas, no el menú de inicio. - Kevin Cathcart


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 reiniciarse, es posible que algunos programas antes puedan usar las nuevas variables. Un buen ejemplo de esto es tener que abrir una nueva ventana de indicador de comando después de agregar una RUTA (sí, esto me ha disparado).


16
2018-05-16 06:11



Este problema afecta a TODOS LOS SERVICIOS, incluso un servicio reiniciado no verá nuevas variables de entorno. - gimel
¿Estás seguro de que no es por compartir un proceso svchost? - Mark Sowul


Si bien no tengo suficiente reputación como para comentar sobre la respuesta más votada a esta pregunta, me gustaría decir que no es exactamente correcta. Lo sé porque no importa qué solución intenté en esta publicación, nada funcionó.

los kb artículo vinculado en esa respuesta en realidad dice que:

Sin embargo, tenga en cuenta que las modificaciones a las variables de entorno no   dar como resultado el cambio inmediato. Por ejemplo, si inicia otro comando   Después de realizar los cambios, las variables de entorno   reflejar los valores anteriores (no los actuales). Los cambios no toman   Efecto hasta que cierre la sesión y luego vuelva a iniciar sesión.

La parte sobre las variables de entorno que se restablecen 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:

Para realizar estos cambios sin tener que cerrar sesión, transmita un mensaje WM_SETTINGCHANGE a todas las ventanas del sistema, de modo que cualquier aplicación interesada (como Windows Explorer, Administrador de programas, Administrador de tareas, Panel de control, etc.) pueda realizar una actualización.

Eso no implica que Explorer emita 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.


12
2017-11-26 22:30





Hacer la env. variable disponible de inmediato:

1. Open a shell

Dependiendo de la variable de entorno que desee cambiar, haga lo siguiente:    (suponga que desea agregar un nuevo PATH para una aplicación recientemente instalada) Entonces, en el indicador de comandos de shell, escriba lo siguiente:

2. PATH=%PATH%;C:\type\your\new\path\here

Comprueba que tu nueva ruta se haya agregado a la variable de entorno.

3. echo %PATH%

Hecho.

Hacer que la variable esté disponible al reiniciar

1. Press WinLogoKey+Pause/Break
2. On the left pane, press 'Advanced System Settings'
3. On the 'Advanced' tab, click 'Environment Variables'
4. In 'System Variables' choose the one you want to modify
5. Click Ok

Probado y trabajando en Windows 7/10


4
2017-11-18 17:00





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 problemas. Para cambiar la cuenta de servicio, abra la consola services.msc, seleccione el servicio, haga clic en las 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 este es un usuario que ha sido registrado, debería funcionar sin problemas. Si está utilizando la cuenta de usuario actual, entonces también podría 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.


3
2017-08-09 20:26