रजिस्ट्री में पर्यावरण चर कहाँ संग्रहीत किए जाते हैं?


190

मुझे दूर से एक पर्यावरण चर का उपयोग करने की आवश्यकता है। ऐसा करने के लिए मुझे लगता है कि रजिस्ट्री से इसे पढ़ने का सबसे अच्छा तरीका है।

रजिस्ट्री में पर्यावरण चर कहाँ संग्रहीत किए जाते हैं?

जवाबों:


282

यहाँ वे सर्वर 2012 R2 के माध्यम से XP पर संग्रहीत हैं:

उपयोगकर्ता चर

HKEY_CURRENT_USER\Environment

सिस्टम चर

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

7
अपने परिवर्तनों को प्रभावी बनाने के लिए अपने सिस्टम को पुनः आरंभ करना याद रखें।
0x6B6F77616C74

22
आपको पुनः आरंभ करने की आवश्यकता नहीं है। बस Explorer.exe को मारें और इसे वापस लाएं। यह उदाहरण के लिए cmd.exe के लिए मूल प्रक्रिया है (प्रारंभ मेनू से शुरू होने पर)
क्रिश्चियन डिएकस्क्यू

2
कैसे अन्य प्रक्रियाओं के लिए - जैसे आईआईएस? मुझे लगता है कि Explorer.exe उन के लिए माता-पिता नहीं है, इसलिए एक पुनरारंभ की आवश्यकता होगी?
कॉलिन

3
सिस्टम एनवी चर में पढ़ी जाने वाली प्रक्रियाएँ उस समय शुरू होती हैं। तो IIS जैसी किसी चीज़ के साथ, उस सेवा को फिर से शुरू करके अद्यतन मूल्यों में लाना चाहिए।
स्टीव शेफ्लर

11
उपयोगकर्ता पथ चर (मेरे दस्तावेज़, HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
ऐपडाटा

22

मुझे लगता है कि यह पुराना है, लेकिन विंडोज 7 में ऐसा करने का एक अधिक कुशल तरीका है। SETX डिफ़ॉल्ट रूप से स्थापित है और अन्य सिस्टम से कनेक्ट करने का समर्थन करता है।

एक दूरस्थ सिस्टम वैश्विक पर्यावरण चर को संशोधित करने के लिए जिसका आप उपयोग करेंगे

setx /m /s HOSTNAME-GOES-HERE VariableNameGoesHere VariableValueGoesHere

इसके लिए खोजकर्ता को पुनः आरंभ करने की आवश्यकता नहीं है।


9
इस के साथ सावधान रहना, के रूप में setx 1024 चरचरों के बाद सब कुछ truncates !!! superuser.com/questions/387619/…
WalyKu

5

cmd:

reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
reg query HKEY_CURRENT_USER\Environment

शक्ति कोशिका:

Get-Item "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
Get-Item HKCU:\Environment

Powershell / .NET: ( https://msdn.microsoft.com/en-us/library/system.environmentvariabletarget(v=vs.110).aspx देखें )

[System.Environment]::GetEnvironmentVariables([System.EnvironmentVariableTarget]::Machine)
[System.Environment]::GetEnvironmentVariables([System.EnvironmentVariableTarget]::User)

3

मुझे हमेशा से समस्या थी, मैंने एक गेटएक्स बनाया।

::getx %envvar% [\m]
::reads envvar from user enviroment variable and stores it in getxvalue variable
::with \m read system enviroment

@SETLOCAL EnableDelayedExpansion
@echo OFF

@set l_regpath="HKEY_CURRENT_USER\Environment"
@if "\m"=="%2" set l_regpath="HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"

::REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v PATH /t REG_SZ /f /d "%PATH%"
::@REG QUERY %l_regpath% /v %1 /S

@FOR /F "tokens=*" %%A IN ('REG QUERY %l_regpath% /v %1 /S') DO (
@  set l_a=%%A
@   if NOT "!l_a!"=="!l_a:    =!" set l_line=!l_a! 
)

::delimiter is four spaces change it to tab \t
@set l_line=!l_line!
@set l_line=%l_line:    =   %

@set getxvalue=

@FOR /F "tokens=3* delims=  " %%A IN ("%l_line%") DO (
@   set getxvalue=%%A
)
@set getxvalue=!getxvalue!
@echo %getxvalue% > getxfile.tmp.txt
@ENDLOCAL

::we already used tab as delimiter
@FOR /F "delims=    " %%A IN (getxfile.tmp.txt) DO (
    @set getxvalue=%%A
)
@del getxfile.tmp.txt

@echo ON
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.