Necesito eliminar las variables del sistema de las estaciones de trabajo cliente. Tengo más de 500 clientes, así que quiero proporcionar un archivo por lotes al usuario para que se ejecute a sí mismo y elimine las variables del sistema.Cómo eliminar una variable de entorno de la configuración del sistema con un archivo por lotes
Respuesta
Tendrá que modificar esta clave del registro:
HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Control \ Session Manager \ Environment
Los cambios son efectivos después de reiniciar.
El comando setx con un valor de cadena vacío no lo elimina. Y eso no es solo una travesura, porque la lógica es bastante diferente. Porque si la variable específica del usuario anula una variable global, entonces no es posible eliminar la variable específica del usuario y hacer que la variable global "vuelva a activarse". La variable específica del usuario de cadena vacía bloquea la variable global. Uno necesita realmente BORRAR (usando la ventana Variables Evironment) para lograr eso.
Hoy he intentado esto, con la variable global JAVA_HOME siendo anulada por un JAVA_HOME específico para el usuario. No fue posible volver a activar la varialla global sin eliminar por completo la variable específica del usuario. Y hasta ahora no he visto un método para hacer eso desde la línea de comandos o el script por lotes.
(No hay suficientes puntos de reputación para añadir comentarios a la respuesta anterior sobre setx, por lo que hay que añadir mi propia respuesta ...)
punto interesante. ver mi respuesta – barlop
You may want to make these two permanent with setx but obviously no need to
C:\>set uvar=HKCU\Environment
C:\>
C:\>set mvar=HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
C:\>
cierta terminología
Dentro de una clave (que es como una carpeta), tiene una variable con algunos datos como a = 5
http://msdn.microsoft.com/en-us/library/3dwk5axy.aspx se refiere al nombre (a) que tiene un valor (5).
La terminología del registro se ve un poco diferente en msdn pero reg.exe y wikipedia parecen consistentes. wikipedia http://en.wikipedia.org/wiki/Windows_Registry dice que "Los valores de registro son pares nombre/datos almacenados dentro de las claves" habla de un par nombre/datos. nombre (a) datos (5) y el par juntos es un valor.
REG parece usar/v, que probablemente se refiere tanto al nombre de la variable como a sus datos (como en wikipedia), muestra tanto el nombre de la variable como sus datos. Y REG tiene una/d que supongo que es solo para datos.
Un ejemplo con setx
C:\>reg query %uvar%
HKEY_CURRENT_USER\Environment
TEMP REG_EXPAND_SZ %USERPROFILE%\AppData\Local\Temp
TMP REG_EXPAND_SZ %USERPROFILE%\AppData\Local\Temp
...
C:\>setx aaa 3
C:\>reg query %uvar%
HKEY_CURRENT_USER\Environment
TEMP REG_EXPAND_SZ %USERPROFILE%\AppData\Local\Temp
TMP REG_EXPAND_SZ %USERPROFILE%\AppData\Local\Temp
...
aaa REG_SZ 3
Si intenta utilizar setx para eliminarlo, el más cercano que puedes conseguir es borrarlo ya que este artículo del ms KB this MS KB article 195050 dice que te deja con ella todavía en el registro.
setx no eliminar la variable del registro
C:\>setx aaa ""
SUCCESS: Specified value was saved.
C:\>reg query %uvar%
HKEY_CURRENT_USER\Environment
TEMP REG_EXPAND_SZ %USERPROFILE%\AppData\Local\Temp
TMP REG_EXPAND_SZ %USERPROFILE%\AppData\Local\Temp
...
aaa REG_SZ
C:\>
Vale la pena señalar, sin embargo, que la variable se ha ido por lo que se refiere a la línea de cmd. echo% aaa% mostrará% aaa% para que la variable desaparezca. Solo hay algo innecesario en el registro ahora.
usuario hace un punto interesante, que ahora cuando intenta establecer una variable de todo el sistema, no funciona. ya que se sobrescribe con lo que está en la variable de usuario, en este caso, siempre aparecerá como indefinido.
C:\>reg delete %uvar% /v aaa
Delete the registry value aaa (Yes/No)? y
The operation completed successfully.
C:\>
Observe que aaa se ha ido. Abajo.
C:\>reg query %uvar%
HKEY_CURRENT_USER\Environment
TEMP REG_EXPAND_SZ %USERPROFILE%\AppData\Local\Temp
TMP REG_EXPAND_SZ %USERPROFILE%\AppData\Local\Temp
...
C:\>
Si desea hacerlo para una variable de entorno de sistema/máquina en lugar de una de usuario.
-las líneas de abajo deben ser de una privilegiada cmd pronta
-Notificación la clave es HKLM \ SYSTEM administrativa \ CurrentControlSet \ Control \ Session Manager \ Environment
-La% mvar% (a diferencia% UVAR%) necesita cotizaciones alrededor porque la llave tiene un espacio. Si te pierdes las citas, no es gran cosa que acabas de recibir un error que podría recordarte el uso de comillas.
-Y, por supuesto, si desea establecer una variable de entorno en esa parte del registro con setx, use p. Ej. setx aaa 5 -m, es decir, -m después.
C:\>set mvar=HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
C:\>reg delete "%mvar%" /v aaa
Delete the registry value aaa (Yes/No)? y
The operation completed successfully.
C:\>
nota además
Usted puede ser capaz de crear una variable de entorno solo con REG ADD o REG DELETE .. (en lugar de setx) pero de cualquier manera, al establecer una variable es posible que desee utilizar también configurado, para que esté configurado para la sesión actual y no solo para la siguiente. Y un enlace re setx https://superuser.com/questions/647505/set-enviroment-variable-setx
Si desea evitar el reinicio, encontrará una forma de transmitir un WM_SETTINGSCHANGE
a cada ventana activa después de haber eliminado el valor.
Eso hará que las nuevas ventanas de CMD se den cuenta de que la variable ha sido eliminada (y cualquier otro programa que entienda WM_SETTNGSCHANGE
).
- 1. Establecer una variable de entorno del sistema desde un archivo por lotes de Windows?
- 2. ¿Cómo configuro una variable de entorno a un valor con espacios en un archivo por lotes?
- 3. Variable de entorno del sistema Java
- 4. Escribiendo un archivo por lotes para eliminar archivos con comodines
- 5. Configuración de la variable de entorno en el script ant
- 6. Configuración de una variable de entorno de visualización para un sistema Unix remoto
- 7. ¿Cómo se lee el contenido del archivo en una variable en un archivo por lotes?
- 8. Archivo por lotes - Eliminar la segunda extensión de archivo
- 9. cómo leer Variable de entorno del sistema en Spring applicationContext
- 10. ¿Por qué hay una diferencia entre la codificación del símbolo del sistema de Windows frente a un archivo por lotes?
- 11. Para eliminar parte del contenido de un archivo con el archivo por lotes DOS
- 12. ¿Por qué la RUTA del entorno Powershell es diferente a la RUTA del entorno del sistema?
- 13. Configuración de la variable de entorno con maven 2.x
- 14. Batch/BAT - Cambie la configuración del proxy con un archivo por lotes/BAT
- 15. C# establecer la variable de entorno
- 16. ¿Cómo establecer la variable de entorno o la propiedad del sistema en las pruebas de primavera?
- 17. El archivo de proceso por lotes no puede establecer la variable de entorno dentro de la declaración condicional
- 18. ¿Cómo pasar una propiedad de integración a un archivo por lotes con CruiseControlNet?
- 19. Incluir un archivo por lotes en un archivo por lotes
- 20. Usando la variable de entorno en una ruta de archivo
- 21. Cómo eliminar por lotes con nhibernate?
- 22. Archivo por lotes - Escribir lista de archivos en la variable
- 23. Eliminar carpetas con comodines de un archivo por lotes Windows 7
- 24. Windows Azure: ¿cómo expongo una configuración de configuración como una variable de entorno?
- 25. Cómo exportar una variable de entorno del ámbito del sistema en bash
- 26. Establecer la propiedad Sistema Con la configuración de Spring Archivo
- 27. Hacer una variable de entorno sobrevivir ENDLOCAL
- 28. Cuál es la diferencia entre una propiedad del sistema y la variable de entorno
- 29. Cómo concatenar variable con cadena o variable en el archivo por lotes
- 30. Utilizar el símbolo del sistema para llamar a un archivo por lotes en un subdirectorio
Encontré mi configuración de entorno setx en \ HKEY_CURRENT_USER \ Environment \. Pero gracias por el puntero sobre dónde buscar en el registro. Y, por extraño que parezca, no necesité un reinicio para que afecte al próximo dos \ cmd que abrí. Interesante. – PHenry