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?
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
- Komut isteminde şunu yazın:
runas /user:yourusername@yourdomain cmd
- Yeni bir cmd komutunu açar, sonra şunu yazın:
taskkill /f /im explorer.exe
- 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.
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).
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.
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
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.