Chciałbym dodać zmienną środowiskową do komputera z systemem Windows (komputer lub serwer) i móc z niej korzystać bez ponownego uruchamiania tego komputera.
Załóżmy, że masz serwer produkcyjny, który obsługuje różne aplikacje, a nowa aplikacja wymaga do działania określonej zmiennej środowiskowej. Nie chcesz go ponownie uruchamiać, gdy użytkownicy są połączeni z innymi aplikacjami. Jakie masz możliwości? Nie podoba mi się opcja oczekiwania na ponowne uruchomienie komputera. Musi być lepszy sposób. czego mi brakuje?
windows
environment-variables
Czad Braun-Duin
źródło
źródło
Odpowiedzi:
Zmiany zmiennych środowiskowych powinny obowiązywać natychmiast, jeśli wprowadzisz je w głównym oknie dialogowym Właściwości dla danego komputera (przejdź do Mój komputer | Właściwości | Zaawansowane | Zmienne środowiskowe). Po zapisaniu zmian Eksplorator emituje
WM_SETTINGCHANGE
komunikat do wszystkich okien, aby poinformować ich o zmianie. Wszelkie programy odradzające się po tym Eksploratorze powinny otrzymać zaktualizowane środowisko, chociaż już uruchomione programy nie, chyba że obsłużą komunikat zmiany ustawień.Na podstawie opisu problemu nie jestem w stanie stwierdzić, jaki konkretnie masz problem. Czy możesz nam powiedzieć więcej o konkretnym scenariuszu, który nie działa?
Ten artykuł z bazy wiedzy może być także przydatny: Jak propagować zmienne środowiskowe do systemu
źródło
runas /user:yourusername@yourdomain cmd
taskkill /f /im explorer.exe
explorer.exe
Teraz po zamknięciu wszystkich wierszy poleceń zobaczysz, że
PATH
zmienna została naprawdę zaktualizowana.Wszystkie monity poleceń muszą być zamknięte. Otwórz ponownie wiersz polecenia, wpisz ścieżkę, a zobaczysz nowe dane.
źródło
ctrl+alt+shift
. Spowoduje to czyste zamknięcie Eksploratora Windows. W systemie Vista + okno dialogowe zamykania systemu jest trudniejsze do znalezienia (ale nadal obecne, przynajmniej przez 7 (niepewne około 8 i 10)), więc istnieje druga metoda. ctrl + shift + kliknij prawym przyciskiem myszy pustą część menu startowego i wybierz opcję wyjdź z Eksploratora. W 8 opcja wyjścia jest taka sama, ale używasz paska zadań, a nie menu startowego.Należy pamiętać, że wiele programów uzyskuje zmienne środowiskowe przy pierwszym uruchomieniu, więc chociaż system Windows może nie wymagać ponownego uruchomienia, niektóre programy mogą zanim będą mogły korzystać z nowych zmiennych. Dobrym przykładem tego jest konieczność otwarcia nowego okna wiersza polecenia po dodaniu ŚCIEŻKI (tak, byłem tym zaskoczony).
źródło
Chociaż nie mam wystarczającej reputacji, aby skomentować najwyższą głosowaną odpowiedź na to pytanie, chciałbym stwierdzić, że nie jest to dokładnie poprawne. Wiem o tym, ponieważ bez względu na obejście, którego próbowałem w tym poście, tak naprawdę nic nie działało.
Artykuł kb powiązany z tą odpowiedzią faktycznie stwierdza, że:
Część dotycząca zmiennych środowiskowych przywracających poprzednie wartości po ponownym załadowaniu wiersza polecenia jest dokładnie tym, czego doświadczyłem w systemie Windows Server 2008.
Artykuł mówi dalej:
Nie oznacza to, że Explorer emituje komunikat WM_SETTINGCHANGE po zmianie zmiennych środowiskowych systemu lub że faktycznie działa. Nie jestem pewien, jak zrobiłbyś to, co sugeruje artykuł z bazy wiedzy (aby natychmiast propagować zmiany) z wiersza polecenia.
źródło
Złóż środowisko zmienna dostępna od zaraz:
W zależności od zmiennej środowiskowej, którą chcesz zmienić, wykonaj następujące czynności: (załóżmy, że chcesz dodać nową ŚCIEŻKĘ dla ostatnio zainstalowanej aplikacji). W wierszu poleceń powłoki wpisz następujące polecenie:
sprawdź, czy nowa ścieżka została dodana do zmiennej środowiskowej
Gotowy.
Udostępnij zmienną przy ponownym uruchomieniu
Testowany i działający na systemie Windows 7/10
źródło
Możliwym rozwiązaniem dla usług jest tymczasowe uruchomienie ich jako inny użytkownik (inny niż LocalSystem, LocalService, NetworkService). Na przykład w przypadku usługi Apache działa to bez żadnych problemów. Aby zmienić konto usługi otwórz konsolę services.msc, wybierz usługę, kliknij właściwości usługi, a na drugiej karcie wprowadź poświadczenia logowania dla użytkownika. Uruchom ponownie usługę, a jej zmienne środowiskowe powinny być aktualne.
Jeśli jest to użytkownik zalogowany, to powinno działać bez problemów. Jeśli używasz bieżącego konta użytkownika, konieczne może być również ponowne uruchomienie explorer.exe. Należy również pamiętać, że uruchamianie usług jako zwykłego konta użytkownika może powodować zagrożenia bezpieczeństwa.
źródło
Ponieważ ludzie jeszcze nie dodali tej odpowiedzi, chciałem wspomnieć, że możesz ustawić stałe zmienne systemowe, które przetrwają restart przy pomocy polecenia SETX.
na przykład
Pamiętaj, że powyższe nie będzie działać w bieżącym oknie poleceń i będzie wymagało otwarcia nowego okna poleceń, zanim zacznie obowiązywać. W rezultacie, w zależności od przypadku użycia; może być konieczne połączenie tego z jedną z powyższych technik.
Aby uzyskać dodatkowe informacje, zobacz następujący adres URL :
źródło