So entfernen Sie eine Umgebungsvariable aus dem system-Konfiguration mit einem batch-file
Ich brauche, um zu entfernen system-Variablen, die aus client-workstations. Ich habe 500+ clients, also ich will die batch-Datei, um Benutzer zu laufen, selbst zu löschen der system-Variablen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einige Terminologie
Innerhalb des Schlüssels(das ist wie ein Ordner), Sie haben eine variable mit einigen Daten wie a=5
http://msdn.microsoft.com/en-us/library/3dwk5axy.aspx
Gespräche über den Namen(a) mit einem Wert(5).
Registry Terminologie etwas anders aussieht auf der msdn-Website aber reg.exe und wikipedia scheinen konsistent.
wikipedia http://en.wikipedia.org/wiki/Windows_Registry so sagt es
"Registry-Werte-Namen/Daten-Paare gespeichert, die innerhalb keys"
Gespräche von einem Namen/Daten-pair-Mädchen. name(a) Daten(5) und das paar zusammen, wobei ein Wert.
REG scheint mit /v bezieht sich wahrscheinlich auf die beiden Variablen name und seine Daten (wie in wikipedia), es zeigt sowohl die variable name und seine Daten. Und REG hat a /d -, die ich nehme an das ist nur für Daten.
Ein Beispiel mit setx
Wenn Sie versuchen, setx, um es zu entfernen, ist die nächstgelegene Sie bekommen können Sie es deaktivieren, da dieser MS-KB-Artikel dieser MS-KB-Artikel 195050 sagt, die Blätter, die Sie mit ihm noch in der registry.
setx nicht entfernen Sie die variable aus der registry
Es ist erwähnenswert, jedoch, dass die variable ist so weit gegangen wie die cmd-Eingabeaufforderung betroffen ist. echo %aaa% zeigt %aaa%, so ist die variable Weg. Es gibt einfach ein paar unnötige Müll in der registry.
Benutzer macht einen interessanten Punkt, dass jetzt, wenn Sie versuchen, eine systemweite variable, es funktioniert nicht. wie wird Sie überschrieben durch das, was in die user-variable, in diesem Fall, es wird immer als undefined.
Beachten Sie, dass aaa ist jetzt Weg. Unten.
Wenn Sie wollen, es zu tun für ein system/eine Maschine die environment-variable anstatt eines Benutzers ein.
-die folgenden Zeilen müssen aus einer privilegierten administrativen cmd-Eingabeaufforderung
-beachte das der Schlüssel ist HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
-Die %mvar% (im Gegensatz zu %uvar%) braucht Zitate Runde es 'cos Sie den Schlüssel ein Leerzeichen enthält. Wenn Sie verpassen die Zitate es ist keine große Sache, Sie nur eine Fehlermeldung erhalten, die möglicherweise erinnert Sie daran, verwenden Sie Anführungszeichen.
-Und natürlich, wenn Sie wollen, um eine Umgebungsvariable in diesem Teil der registry mit setx, z.B. setx aaa 5 -m, d.h. die m nach.
weiteren Hinweis
Sie möglicherweise in der Lage, erstellen Sie eine Umgebungsvariable nur mit REG ADD oder REG zu LÖSCHEN..(an Stelle von setx), aber entweder Weg, wenn die Einstellung eine variable, die Sie verwenden möchten, können zu setzen, so dass es für die aktuelle session auch nicht gerade der nächste. Und ein link neu gesetzt istx https://superuser.com/questions/647505/set-enviroment-variable-setx
Den setx-Befehl mit einem leeren string-Wert nicht löschen. Und das ist nicht nur Erbsenzählerei, da die Logik ist ganz anders. Weil, wenn der Benutzer bestimmte variable überschreibt eine Globale variable ist, dann ist es nicht möglich, entfernen Sie die Benutzer-spezifische Variablen und die Globale variable "aktiv" wieder. Der leere string user spezifische Variablen-Blöcke die Globale variable. Man braucht, um tatsächlich LÖSCHEN Sie (mit Hilfe der R-Variablen-Fenster) zu erreichen.
Ich gerade heute ausprobiert, mit der globalen variable JAVA_HOME überschrieben werden, indem ein Benutzer bestimmte JAVA_HOME. Es war nicht möglich, die Globale varialble wieder aktiv löschen, ohne den Benutzer bestimmte variable vollständig. Und so weit ich habe nicht gesehen, eine Methode zu tun, die von der Kommandozeile oder batch-Skript.
(Nicht genug Rufpunkte zum hinzufügen von Kommentar zu der obigen Antwort, setx, so haben, um meine eigene Antwort...)
Müssen Sie diese Registrierungsschlüssel:
Änderungen sind wirksam nach dem Neustart.
Wenn Sie vermeiden wollen neu starten, werden Sie einen Weg finden, um das übertragen von
WM_SETTINGSCHANGE
jedem aktiven Fenster, nachdem Sie gelöscht haben, der Wert.Machen, dass neue CMD-Fenster bemerken, dass die variable gelöscht wurde (und jedes andere Programm, das versteht
WM_SETTNGSCHANGE
).