Soru Yeniden başlatmadan bir Windows ortam değişkeni nasıl eklenir?


Bir Windows makinesine (masaüstü veya sunucu) bir Ortam değişkeni eklemek ve bu makineyi yeniden başlatmadan kullanabilmek istiyorum.

Çeşitli uygulamaları barındıran bir üretim sunucunuz olduğunu ve yeni bir uygulamanın çalışması için belirli bir Ortam değişkenine ihtiyaç duyduğunuzu varsayalım. Kullanıcılar diğer uygulamalarınıza bağlıyken yeniden başlatmak istemezsiniz. Hangi seçenekleriniz var? Bekleme-için-iyi-time-to-reboot seçeneği istemiyorum. Daha iyi bir yol olmalı. Neyi kaçırıyorum?


162
2018-05-16 04:09


Menşei


Bende aynı sorun vardı. Explorer.exe işleminin öldürülmesinin değişkenleri güncellediğini ve çalıştığı bir yerde okudum. Sonra sadece görev yöneticisinden kaşif çalıştırmak zorunda kaldım. - user19694
Yol değişkenlerinizin güncellenmesi için komut istemini kapatmanız ve tekrar açmanız gerekir. Cmd başladığında değişkenler yüklenir. - NiLInfinite


Cevaplar:


Söz konusu bilgisayar için ana Özellikler iletişim kutusu üzerinden değişiklik yaparsanız (Bilgisayarım | Özellikler | Gelişmiş | Ortam Değişkenleri'ne gidin), ortam değişkenlerindeki değişiklikler hemen geçerli olmalıdır. Değişiklikler kaydedildikten sonra, Explorer bir WM_SETTINGCHANGE Değişiklikleri onları bilgilendirmek için tüm pencerelere mesaj. Bundan sonra Explorer aracılığıyla oluşturulan programlar, zaten değiştirilmiş programlar ayar değişikliği mesajını ele almadıkça, güncelleştirilmiş ortamı almalıdır.

Problem açıklamanızdan ne tür bir sorunla karşılaştığınızı anlatamıyorum. Bize çalışmayan belirli senaryo hakkında daha fazla bilgi verir misiniz?

Bu KB makalesi de aşağıdakilerden biri olabilir: Ortam değişkenlerini sisteme nasıl yayılır


153
2018-05-16 04:16



Tamam, sanırım bu davranışı çalışan bir serviste görmüş olmalıyım. Yukarıda açıklanan yöntemi kullanarak yeni bir ortam değişkeni ekledim. Ardından, yeni bir komut istemi açıp "echo% <myvar>%" komutunu kullandıktan sonra değeri görebildim. - Chad Braun-Duin
PowerShell kullanıcıları için bu kod parçacığı yardımcı olabilir: poshcode.org/2049 - Anders Zommarin
Cmd kullanılıyorsa, env değişkenini değiştirirseniz yeniden başlatmanız gerekir. - Neil McGuigan
PC'imde sadece Scala yüklü ama PATH güncellemedi; muhtemelen MSI, WM_SETTINGCHANGE mesajını yayınlamadı. WM_SETTINGCHANGE mesajını tetiklemek için güncellediğim kukla bir SYSTEM değişkeni, yani CHANGE_TO_UPDATE = z ekledim - problem çözüldü - Darren Bishop
CHANGE_TO_UPDATE = z için teşekkürler, tam istediğim çözüm bu. Benim için çalıştı ve yeniden başlatmam gerekmedi. - iopq


  1. Komut isteminde şunu yazın: runas /user:yourusername@yourdomain cmd
  2. Yeni bir cmd komutunu açar, sonra şunu yazın: taskkill /f /im explorer.exe
  3. Sonra yazın: explorer.exe

Şimdi tüm komut istemlerini kapattıktan sonra, PATH değişken gerçekten güncellendi.

Tüm komut istemleri kapalı olmalıdır. Yeni bir komut istemi yeniden açın, yolu yazın ve yeni verileri göreceksiniz.


54
2018-03-20 06:36



Bu sayfadaki bütün cevaplardan, benim için gerçekten işe yarayan tek şey bu. Teşekkür ederim!! - CoreDumpError
Bu benim için çalıştı. Problem şu ki, kaşif ile cmd çalıştırırsanız (uzun yollara yazmanız gerektiğinden), tüm kaşif pencerelerini kapatsanız bile kaşif asla kapanmaz. Çözüm için teşekkürler :) - Steve Mc
Benim için çalıştı. Ayrıca, kaşif görevlerini öldürmek ve yeniden başlatmak için Görev Yöneticisi'ni de kullanabilirsiniz (Dosya> Yeni görevi çalıştır). - adabyron
Ahh. Süreçlerinden biri askıya alınmadığı sürece lütfen Windows Gezgini'ni öldürmeyin. Bunun yerine, kapatma pencereleri iletişim kutusunu açın ve tutarken iptal edin. ctrl+alt+shift. Bu, Windows Explorer'dan temiz bir şekilde çıkacak. Vista + da kapatma pencereleri diyaloğunu bulmak daha zordur (ancak en azından 7 (hala yaklaşık 8 ve 10)), böylece ikinci bir yöntem vardır. ctrl + shift + start menüsünün boş bir kısmına sağ tıklayın ve explorer'dan çıkın. 8'de çıkış seçeneği aynıdır, ancak başlangıç ​​menüsünü değil görev çubuğunu kullanırsınız. - Kevin Cathcart
Yukarıdaki yorum istemci işletim sistemini açıklar ancak aynı ya da daha az sunucu için geçerlidir. Bir neden iletişim kutusunun kapatılmasının çıkış kaşifini destekleyip desteklemediğinden emin değilim, hiçbir zaman test etme fırsatım olmadı ve kontrolümdeki herhangi bir sunucuyla uğraşmak istemiyorum. - Kevin Cathcart


Akılda tutulması gereken bir nokta da, birçok programın, ilk başlatıldığında çevresel değişkenleri elde etmesidir; bu nedenle, pencerelerin yeniden başlatmaya ihtiyaç duymayabilirken, bazı programlar yeni değişkenleri kullanabilmelerinden önce olabilir. Bunun iyi bir örneği, bir PATH ekledikten sonra yeni bir komut istemi penceresi açmak zorunda kalmaktır (evet, buna göre hızlandırıldım).


16
2018-05-16 06:11



Bu sorunlar TÜM HİZMETLERİ etkiler, yeniden başlatılmış bir hizmet bile yeni ortam değişkenlerini görmez. - gimel
Bir svchost sürecini paylaşmadığından emin değil misiniz? - Mark Sowul


Bu soruya verilen en yüksek oylama cevabını yorumlamak için yeterli bir itibarım olmasa da, tam olarak doğru olmadığını belirtmek isterim. Bunu biliyorum çünkü bu yazımda hangi çözümü denedim, hiçbir şey gerçekten işe yaramadı.

Bu makalede bağlantıya bağlanan kb makalesi aslında şöyle belirtiyor:

Ancak, ortam değişkenlerinde yapılan değişikliklerin yapılmadığını unutmayın.   hemen değişiklikle sonuçlanır. Örneğin, başka bir Komut başlatırsanız   Değişiklikleri yaptıktan sonra istemi, çevre değişkenleri   önceki (mevcut değil) değerleri yansıtır. Değişiklikler almaz   Oturumu kapatana kadar ve sonra tekrar oturum açın.

Komut istemini yeniden yükledikten sonra önceki değerlere sıfırlanan ortam değişkenleriyle ilgili bölüm, Windows Server 2008'de tam olarak deneyimlediğim şeydir.

Makale şöyle devam ediyor:

Oturumu kapatmadan bu değişiklikleri gerçekleştirmek için, sistemdeki tüm pencerelere bir WM_SETTINGCHANGE mesajı yayınlayın, böylece ilgili tüm uygulamalar (Windows Gezgini, Program Yöneticisi, Görev Yöneticisi, Denetim Masası ve benzeri) bir güncelleme gerçekleştirebilir.

Bu, sistem ortam değişkenlerini değiştirdikten veya gerçekte çalıştığından sonra Explorer'ın bir WM_SETTINGCHANGE mesajı yayınladığını ima etmez. Komut isteminden KB makalesinde (değişiklikleri hemen yaymak için) önerilenleri nasıl yapacağınızdan emin değilim.


12
2017-11-26 22:30





Env yap. değişken hemen kullanılabilir:

1. Open a shell

Değiştirmek istediğiniz ortam değişkenine bağlı olarak aşağıdakileri yapın:    (son yüklenen bir uygulama için yeni bir PATH eklemek istediğinizi belirtin) Bu nedenle, kabuk isteminde aşağıdakini yazın:

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

Yeni yolunuzun ortam değişkenine eklendiğini kontrol edin

3. echo %PATH%

Bitti.

Değişkeni yeniden başlatmada kullanılabilir yap

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

Windows 7/10 üzerinde test edildi ve çalışıyor


4
2017-11-18 17:00





Hizmetler için olası bir çözüm, onları geçici olarak başka bir kullanıcı (LocalSystem, LocalService, NetworkService dışında) olarak çalıştırmaktır. Örneğin Apache servisi için bu herhangi bir sorun olmadan çalışır. Servis hesabı open services.msc konsolunu değiştirmek için servis seçin, servis özelliklerini tıklayın ve ikinci sekmede bir kullanıcı için oturum açma bilgilerini girin. Servisi yeniden başlatın ve ortam değişkenleri güncel olmalıdır.

Bu daha oturum açmış bir kullanıcı ise sorunsuz çalışmalıdır. Geçerli kullanıcı hesabı kullanıyorsanız, explorer.exe dosyasını yeniden başlatmak da gerekli olabilir. Ayrıca, normal kullanıcı hesabı olarak çalışan hizmetlerin güvenlik riski oluşturabileceğini de unutmayın.


3
2017-08-09 20:26