¿Cómo puedo modificar la variable de entorno PATH de un usuario sin cerrar sesión?

22

La pregunta prácticamente lo dice todo; Tengo usuarios que no tienen permiso para editar su propia PATHvariable de entorno y si necesitan modificarla por algún motivo, deben cerrar sesión para que un administrador pueda iniciar sesión y cambiarla PATHantes de que el usuario vuelva a iniciar sesión . Esto no es lo ideal. ¿Se puede hacer de una mejor manera?

novedoso
fuente
Es curioso, pero ¿cómo es exactamente que evita que los usuarios cambien su propio entorno predeterminado? ¿Les está negando el acceso a Mi PC / Propiedades / Avanzado / Variable de entorno? Todavía podrían modificar HKCU / Environment a través de una variedad de métodos.
Cooper
Preferencias de política de grupo? Solo un pensamiento.
Simon Catlin

Respuestas:

6

Siempre puede invocar un shell de cmd con derechos de administrador (o cualquier otro método runas) y utilizar una herramienta como SETX para modificar la ruta de forma permanente. Los shells existentes y / o los programas en ejecución probablemente usarán la ruta anterior, pero cualquier nuevo shell / programa usará la nueva configuración.

Berzemus
fuente
25

Para cuentas sin privilegios de administrador:

Abra "Cuentas de usuario" y elija "Cambiar mis variables de entorno" ( http://support.microsoft.com/kb/931715 ).

Este cuadro de diálogo le mostrará sus variables de usuario actuales, así como las variables del sistema. Es posible que deba agregar una variable PATH local si aún no lo ha hecho.

Para actualizar su ruta para incluir el directorio Python 3.3, por ejemplo, haga clic en Nuevo:

Nombre de la variable: PATH Valor de la variable:% PATH%; C: \ Python33

Esto crea una RUTA local al tomar la RUTA actual del sistema y agregarla.

Curtis Nelson
fuente
2
Tengo que pensar que esto responde: " Tengo usuarios que no tienen permiso para editar su propia RUTA ...", y lo hace de forma permanente , mejor que el resto. Muy bien hecho. ¿Me pregunto por qué hacer clic en eso desde Mi PC está protegido por el administrador si no lo está? Simplemente proteja los campos no locales de la misma manera que lo hace la IU cuando se accede de esta manera.
ruffin
10

Mi PC / Propiedades / Avanzado / Variables de entorno. Los cambios surten efecto de inmediato, excepto para las ventanas de símbolo del sistema ya abiertas. No es necesario cerrar sesión y volver a iniciarla.

NOTA: Si no tiene acceso a esa ventana, puede obtenerla ejecutándose rundll32 sysdm.cpl,EditEnvironmentVariablesdesde la ventana Ejecutar o la línea de comandos.

John Gardeniers
fuente
usuarios habituales de mi red no son capaces de cambiar sus propias variables de entorno como éste, a menos que pueda abrir esa pantalla con privs elevados a través de "Ejecutar como ..." o algo similar, esto no va a funcionar para mí
ninesided
4

En un símbolo del sistema puede hacer:

set PATH=C:\somedir;%PATH%

pero esto solo lo cambia para el símbolo del sistema (y cualquier aplicación iniciada desde el símbolo del sistema). Suponiendo que desea que esto se aplique a todo lo que el usuario hace, cambia las variables de entorno de los usuarios. Haga clic derecho en Mi PC, Propiedades, Avanzado, Variables de entorno y en "Variables de usuario para agregar una variable:

PATH = C:\whatever

Cuando el usuario inicia sesión, esto se agrega a la ruta del sistema.

John Rennie
fuente
Necesito cambiar el orden de las entradas que ya están en el PATH, por lo que añadir la eliminación de las variables de usuario no funciona para mí en este caso
ninesided
setx, como mencionó @Berzemus, puede editar la variable PATH del sistema (el /minterruptor) de forma permanente.
Pat
2

El usuario puede establecer una variable PATH en un símbolo del sistema que anulará la variable PATH en todo el sistema, incluso si el usuario no tiene derechos de "Administrador". El cambio surtirá efecto para los nuevos procesos que el usuario inicia desde ese símbolo del sistema. (El proceso Explorer existente, y cualquier otro proceso que el usuario esté ejecutando cuando se realice el cambio, no "verá" el cambio).

Evan Anderson
fuente
1

Además de las respuestas anteriores, también puede actualizar el registro (que tiene la ventaja de ser programable):

La variable PATH se almacena en HKEY_CURRENT_USER \ Environment.

Para leer la ruta actual:

reg query HKEY_CURRENT_USER\Environment /v PATH

Para agregar un valor c: \ somedir a la ruta:

reg add HKEY_CURRENT_USER\Environment /v PATH /d "%PATH%;c:\somedir"

Tenga en cuenta que los procesos leen el entorno cuando se inicia, por lo que deberá reiniciar el proceso para que obtenga la nueva ruta.

Actualización: Otra forma que encontré es ejecutar:

rundll32 sysdm.cpl,EditEnvironmentVariables

Nuevamente, este applet edita el registro y tiene el mismo efecto que el anterior.

Kristopher Noronha
fuente