Ich möchte einer Windows-Maschine (Desktop oder Server) eine Umgebungsvariable hinzufügen und diese verwenden, ohne die Maschine neu zu starten.
Angenommen, Sie haben einen Produktionsserver, der eine Vielzahl von Apps hostet, und eine neue App benötigt eine bestimmte Umgebungsvariable, um ausgeführt zu werden. Sie möchten es nicht neu starten, während Benutzer mit Ihren anderen Apps verbunden sind. Welche Möglichkeiten haben Sie? Ich mag es nicht, bis zum Neustart zu warten. Es muss einen besseren Weg geben. Was vermisse ich?
windows
environment-variables
Chad Braun-Duin
quelle
quelle
Antworten:
Änderungen an Umgebungsvariablen werden sofort wirksam, wenn Sie die Änderung über das Hauptdialogfeld "Eigenschaften" für den betreffenden Computer vornehmen (gehen Sie zu "Arbeitsplatz" | "Eigenschaften" | "Erweitert" | "Umgebungsvariablen"). Nachdem die Änderungen gespeichert wurden, sendet der Explorer eine
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, bereits ausgeführte Programme jedoch nicht, es sei denn, sie behandeln die Einstellungsänderungsnachricht.Ich kann Ihrer Problembeschreibung nicht entnehmen, welches spezifische Problem Sie damit haben. Können Sie uns mehr über das spezielle Szenario erzählen, das nicht funktioniert?
Dieser KB-Artikel kann auch von Nutzen sein: Wie werden Umgebungsvariablen an das System weitergegeben?
quelle
runas /user:yourusername@yourdomain cmd
taskkill /f /im explorer.exe
explorer.exe
Nachdem Sie alle Eingabeaufforderungen geschlossen haben, sehen Sie, dass die
PATH
Variable wirklich aktualisiert wurde.Alle Eingabeaufforderungen müssen geschlossen sein. Öffnen Sie eine neue Eingabeaufforderung und geben Sie path ein. Die neuen Daten werden angezeigt.
quelle
ctrl+alt+shift
. Damit wird Windows Explorer sauber beendet. In Vista + ist das Dialogfeld zum Herunterfahren von Windows schwerer zu finden (es ist jedoch immer noch vorhanden, mindestens bis 7 (unsicher, etwa 8 und 10)), sodass es eine zweite Methode gibt. Strg + Umschalt + Rechtsklick in einen leeren Teil des Startmenüs und wählen Sie Explorer beenden. In 8 ist die Option zum Beenden dieselbe, aber Sie verwenden die Taskleiste und nicht das Startmenü.Beachten Sie, dass viele Programme die Umgebungsvariablen beim ersten Start erhalten. Während Windows möglicherweise keinen Neustart benötigt, können einige Programme die neuen Variablen möglicherweise erst verwenden. Ein gutes Beispiel hierfür ist das Öffnen eines neuen Eingabeaufforderungsfensters nach dem Hinzufügen eines PFADS (ja, ich bin dadurch gestolpert).
quelle
Obwohl ich nicht genug Reputation habe, um die am höchsten bewertete Antwort auf diese Frage zu kommentieren, möchte ich festhalten, dass sie nicht genau richtig ist. Ich weiß das, weil unabhängig davon, welche Problemumgehung ich in diesem Beitrag versucht habe, tatsächlich nichts funktioniert hat.
In dem in dieser Antwort verlinkten KB-Artikel heißt es tatsächlich:
Der Teil über die Umgebungsvariablen, die nach dem erneuten Laden der Eingabeaufforderung auf die vorherigen Werte zurückgesetzt werden, ist genau das, was ich in Windows Server 2008 erlebt habe.
In dem Artikel heißt es weiter:
Dies bedeutet nicht, dass der Explorer eine WM_SETTINGCHANGE-Nachricht sendet, nachdem Sie die Systemumgebungsvariablen geändert haben oder dass sie tatsächlich funktioniert. Ich bin nicht sicher, wie Sie das tun würden, was im KB-Artikel vorgeschlagen wird (um die Änderungen sofort zu verbreiten), und zwar über die Eingabeaufforderung.
quelle
Mach das env. Variable sofort verfügbar:
Abhängig von der Umgebungsvariablen, die Sie ändern möchten, gehen Sie wie folgt vor: (Angenommen, Sie möchten einen neuen PFAD für eine kürzlich installierte Anwendung hinzufügen.) Geben Sie an der Shell-Eingabeaufforderung Folgendes ein:
Überprüfen Sie, ob Ihr neuer Pfad zur Umgebungsvariablen hinzugefügt wurde
Getan.
Stellen Sie die Variable beim Neustart zur Verfügung
Getestet und lauffähig unter Windows 7/10
quelle
Eine mögliche Lösung für Dienste besteht darin, sie vorübergehend als ein anderer Benutzer (außer LocalSystem, LocalService, NetworkService) auszuführen. Zum Beispiel für den Apache-Dienst funktioniert dies ohne Probleme. Um das Dienstkonto zu ändern, öffnen Sie die services.msc-Konsole, wählen Sie den Dienst aus, 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 angemeldeter Benutzer ist, sollte dies problemlos funktionieren. Wenn Sie das aktuelle Benutzerkonto verwenden, muss möglicherweise auch explorer.exe neu gestartet werden. Beachten Sie auch, dass das Ausführen von Diensten als normales Benutzerkonto zu Sicherheitsrisiken führen kann.
quelle
Da die Leute diese Antwort noch nicht hinzugefügt haben, wollte ich erwähnen, dass Sie mit dem SETX-Befehl permanente Systemvariablen festlegen können, die einen Neustart überleben.
z.B
Bitte beachten Sie, dass das oben Genannte im aktuellen Befehlsfenster nicht funktioniert und Sie ein neues Befehlsfenster öffnen müssen, bevor es wirksam wird. Infolgedessen je nach Anwendungsfall; Möglicherweise müssen Sie dies mit einer der oben genannten Techniken kombinieren.
Weitere Informationen finden Sie unter der folgenden URL :
quelle