2009-02-21 27 views
160

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

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

उत्तर

237

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

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

HKEY_CURRENT_USER\Environment 

सिस्टम चर

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

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

+15

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

+2

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

17

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

एक दूरस्थ सिस्टम वैश्विक वातावरण चर आप

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

का उपयोग होगा संशोधित करने के लिए यह एक्सप्लोरर को पुन: प्रारंभ आवश्यकता नहीं है।

+0

इसके साथ सावधान रहें, 1024 charachters के बाद सब कुछ truncates !!! https://superuser.com/questions/387619/overcoming-the-1024-character-limit-with-setx – WalyKu

4

मैं हमेशा उस के साथ समस्या नहीं थी, मैं एक getx.bat बनाया:

::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 
0

cmd:

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

Powershell:

gi "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" 
gi HKCU:\Environment 

Powershell/नेट: (देखें 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) 
संबंधित मुद्दे