Frage Wie fügen Sie eine Windows-Umgebungsvariable ohne Neustart hinzu?


Das ist wahrscheinlich eine einfache Antwort, aber ich habe es nie gefunden, indem ich gegoogelt habe. Ich möchte einfach eine Umgebungsvariable zu einem Windows-Rechner (Desktop oder Server) hinzufügen und in der Lage sein, sie ohne Neustart dieses Rechners zu benutzen.

Angenommen, Sie haben einen Produktionsserver, auf dem eine Vielzahl von Anwendungen gehostet wird, und eine neue Anwendung benötigt eine bestimmte Umgebungsvariable, die ausgeführt werden soll. Sie möchten es nicht neu starten, während Benutzer mit Ihren anderen Apps verbunden sind. Welche Wahl hast du? Ich mag die Option "Warten bis zum Neustart" nicht. Es muss einen besseren Weg geben. Was vermisse ich?


162
2018-05-16 04:09


Ursprung


Ich hatte das gleiche Problem. Ich habe irgendwo gelesen, dass das Töten des explorer.exe-Prozesses die Variablen aktualisiert und es funktioniert. Dann musste ich nur den Explorer vom Taskmanager ausführen. - user19694
Sie müssen die Eingabeaufforderung schließen und erneut öffnen, damit die Pfadvariablen aktualisiert werden. Die Variablen werden geladen, wenn cmd startet. - NiLInfinite


Antworten:


Änderungen an Umgebungsvariablen sollten sofort wirksam werden, wenn Sie die Änderung über den Hauptdialog Eigenschaften für den betreffenden Computer vornehmen (gehen Sie zu Arbeitsplatz | Eigenschaften | Erweitert | Umgebungsvariablen). Nachdem die Änderungen gespeichert wurden, sendet der Explorer einen Broadcast WM_SETTINGCHANGE Nachricht an alle Fenster, um sie über die Änderung zu informieren. Alle Programme, die danach über den Explorer gestartet werden, sollten die aktualisierte Umgebung erhalten, obwohl bereits laufende Programme dies nicht tun, es sei denn, sie behandeln die Einstellungsänderungsnachricht.

Ich kann aus Ihrer Problembeschreibung nicht erkennen, welches spezifische Problem Sie damit haben. Können Sie uns mehr über das spezifische Szenario erzählen, das nicht funktioniert?

Dieser KB-Artikel kann auch nützlich sein: Wie man Umgebungsvariablen auf das System überträgt


153
2018-05-16 04:16



Ok, ich denke, ich muss dieses Verhalten bei einem laufenden Dienst oder so gesehen haben. Ich habe eine neue Umgebungsvariable mit der oben beschriebenen Methode hinzugefügt. Dann konnte ich den Wert sehen, nachdem ich eine neue Eingabeaufforderung geöffnet und den Befehl "echo% <myvar>%" verwendet habe. Danke für beide Antworten. - Chad Braun-Duin
Für PowerShell-Benutzer kann dieses Snippet hilfreich sein: poshcode.org/2049 - Anders Zommarin
Wenn Sie cmd verwenden, müssen Sie es neu starten, wenn Sie die Variable env ändern - Neil McGuigan
Ich habe gerade Scala auf meinem PC installiert, aber der PATH wurde nicht aktualisiert. vermutlich hat das MSI die WM_SETTINGCHANGE-Nachricht nicht gesendet. Ich habe eine Dummy-Systemvariable hinzugefügt, d. H. CHANGE_TO_UPDATE = z, die ich aktualisiere, um die WM_SETTINGCHANGE-Nachricht zu lösen - Problem gelöst - Darren Bishop
Danke für das CHANGE_TO_UPDATE = z, das ist genau die Lösung, die ich wollte. Es funktionierte für mich und ich musste nicht neu starten. - iopq


  1. Geben Sie in einer Eingabeaufforderung Folgendes ein: runas /user:yourusername@yourdomain cmd
  2. Es öffnet sich eine neue Eingabeaufforderung mit dem Befehl cmd. Geben Sie dann Folgendes ein: taskkill /f /im explorer.exe
  3. Dann tippe: explorer.exe

Jetzt, nachdem Sie alle Eingabeaufforderungen geschlossen haben, werden Sie sehen, dass PATH Variable wurde wirklich aktualisiert.

Alle Eingabeaufforderungen müssen geschlossen sein. Öffnen Sie eine neue Eingabeaufforderung, geben Sie path ein und Sie werden die neuen Daten sehen.


54
2018-03-20 06:36



Von allen Antworten auf dieser Seite ist dies die einzige, die tatsächlich für mich funktioniert hat. Vielen Dank!! - CoreDumpError
+1 ....................... - Ijas Ameenudeen
Das hat für mich funktioniert. Ich denke, das Problem ist, dass, wenn Sie cmd durch den Explorer laufen lassen (damit Sie lange Pfade nicht eingeben müssen), der Explorer nie geschlossen wird, selbst wenn Sie alle Explorer-Fenster schließen. Danke für die Lösung :) - Steve Mc
Arbeitete für mich. Sie können den Task-Manager auch verwenden, um die Explorer-Tasks zu beenden und neu zu starten (Datei> Neue Task ausführen). - adabyron
Uhh. Bitte töten Sie Windows Explorer nicht, es sei denn, einer seiner Prozesse hängt. Öffnen Sie stattdessen den Dialog zum Herunterfahren und brechen Sie ihn ab, während Sie ihn gedrückt halten ctrl+alt+shift. Das wird Windows Explorer sauber beenden. In Vista + ist der Shutdown-Windows-Dialog schwieriger zu finden (aber immer noch vorhanden, mindestens bis 7 (unsicher über 8 und 10)), also gibt es eine zweite Methode. Strg + Shift + Rechtsklick in einen leeren Teil des Startmenüs und wählen Sie Exit Explorer. In 8 ist die Exit-Option identisch, aber Sie verwenden die Taskleiste nicht das Startmenü. - Kevin Cathcart


Eine Sache, die man beachten sollte ist, dass viele Programme die Umgebungsvariablen erhalten, wenn sie gestartet werden. Während Windows möglicherweise keinen Neustart benötigt, könnten einige Programme die neuen Variablen verwenden. Ein gutes Beispiel hierfür ist das Öffnen eines neuen Eingabeaufforderungsfensters nach dem Hinzufügen eines PATH (ja, ich bin davon gestolpert).


16
2018-05-16 06:11



Dieses Problem betrifft ALLE DIENSTLEISTUNGEN. Selbst bei einem Neustart des Dienstes werden keine neuen Umgebungsvariablen angezeigt. - gimel
Sind Sie sicher, dass es nicht daran liegt, einen Svchost-Prozess zu teilen? - Mark Sowul


Ich habe zwar nicht genug Reputation, um die Antwort mit der höchsten Antwort auf diese Frage zu kommentieren, möchte jedoch feststellen, dass sie nicht genau richtig ist. Ich weiß das, denn egal, welche Problemumgehung ich in diesem Beitrag versucht habe, nichts hat wirklich funktioniert.

Das kb Artikel, der mit dieser Antwort verknüpft ist sagt eigentlich, dass:

Beachten Sie jedoch, dass Änderungen an den Umgebungsvariablen nicht möglich sind   sofortige Änderung zur Folge haben. Zum Beispiel, wenn Sie einen anderen Befehl starten   Nachdem die Änderungen vorgenommen wurden, werden die Umgebungsvariablen angezeigt   spiegeln die vorherigen (nicht die aktuellen) Werte wider. Die Änderungen nicht dauern   Wirkung, bis Sie sich abmelden und wieder anmelden.

Der Teil über die Umgebungsvariablen, der nach dem erneuten Laden der Eingabeaufforderung auf die vorherigen Werte zurückgesetzt wird, ist genau das, was ich in Windows Server 2008 erlebt habe.

Der Artikel fährt fort zu sagen:

Um diese Änderungen durchzuführen, ohne sich abmelden zu müssen, senden Sie eine WM_SETTINGCHANGE-Nachricht an alle Fenster im System, damit alle interessierten Anwendungen (z. B. Windows Explorer, Programm-Manager, Task-Manager, Systemsteuerung usw.) eine Aktualisierung durchführen können.

Das bedeutet nicht, dass Explorer eine WM_SETTINGCHANGE-Nachricht sendet, sobald Sie die Systemumgebungsvariablen geändert haben oder dass sie tatsächlich funktioniert. Ich bin nicht sicher, wie Sie tun würden, was im KB-Artikel vorgeschlagen wird (um die Änderungen sofort zu verbreiten) von der Eingabeaufforderung.


12
2017-11-26 22:30





Mach das env. Variable sofort verfügbar:

1. Open a shell

Abhängig von der Umgebungsvariablen, die Sie ändern möchten, gehen Sie folgendermaßen vor:    (legen Sie fest, dass Sie einen neuen Pfad für eine kürzlich installierte Anwendung hinzufügen möchten) Geben Sie an der Shell-Eingabeaufforderung Folgendes ein:

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

Überprüfen Sie, ob der neue Pfad zur Umgebungsvariablen hinzugefügt wurde

3. echo %PATH%

Erledigt.

Machen Sie die Variable beim Neustart verfügbar

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

Getestet und funktioniert unter Windows 7/10


4
2017-11-18 17:00





Eine mögliche Lösung für Dienste besteht darin, sie vorübergehend als einen anderen Benutzer auszuführen (außer LocalSystem, LocalService, NetworkService). Zum Beispiel für Apache-Dienst funktioniert das ohne Probleme. Um die Service services.msc-Konsole zu ändern, wählen Sie Dienst, klicken Sie auf Diensteigenschaften und geben Sie auf der zweiten Registerkarte die Anmeldeinformationen für einen Benutzer ein. Starten Sie den Dienst neu, und die Umgebungsvariablen sollten auf dem neuesten Stand sein.

Wenn dies ein Benutzer ist, der angemeldet ist, sollte dies ohne Probleme funktionieren. Wenn Sie das aktuelle Benutzerkonto verwenden, ist möglicherweise auch ein Neustart von explorer.exe erforderlich. Beachten Sie außerdem, dass das Ausführen von Diensten als normales Benutzerkonto Sicherheitsrisiken verursachen kann.


3
2017-08-09 20:26