재부팅하지 않고 Windows 환경 변수를 어떻게 추가합니까?


181

환경 변수를 Windows 컴퓨터 (데스크톱 또는 서버)에 추가하고 해당 컴퓨터를 재부팅하지 않고 사용할 수 있습니다.

다양한 앱을 호스팅하는 프로덕션 서버가 있고 새로운 앱을 실행하려면 특정 환경 변수가 필요하다고 가정하십시오. 사용자가 다른 앱에 연결되어있는 동안 재부팅하지 않습니다. 어떤 선택이 있습니까? 재부팅 할 때까지 기다릴 때까지 기다리는 옵션이 마음에 들지 않습니다. 더 좋은 방법이 있어야합니다. 내가 무엇을 놓치고 있습니까?


2
나는이 같은 문제가 있었다. explorer.exe 프로세스를 종료하면 변수가 업데이트되고 작동한다는 것을 읽었습니다. 그런 다음 작업 관리자에서 탐색기를 실행해야했습니다.
user19694

1
경로 변수를 업데이트하려면 명령 프롬프트를 닫았다가 다시 열어야합니다. cmd가 시작될 때 변수가로드됩니다.
NiLInfinite

답변:


162

해당 컴퓨터의 기본 속성 대화 상자를 통해 변경하면 환경 변수에 대한 변경 사항이 즉시 적용됩니다 (내 컴퓨터 | 속성 | 고급 | 환경 변수로 이동). 변경 사항이 저장되면 Explorer는 WM_SETTINGCHANGE모든 창에 메시지를 브로드 캐스트하여 변경 사항 을 알려줍니다. 이 후에 Explorer를 통해 생성 된 모든 프로그램은 업데이트 된 환경을 가져와야하지만 이미 실행중인 프로그램은 설정 변경 메시지를 처리하지 않는 한 업데이트되지 않습니다.

나는 당신이 당신의 문제 설명에서 당신이 이것과 관련된 특정 문제를 말할 수 없습니다. 작동하지 않는 특정 시나리오에 대해 더 자세히 말씀해 주시겠습니까?

이 기술 자료 문서를 사용할 수도 있습니다. 환경 변수를 시스템에 전파하는 방법


2
좋아, 나는 실행중인 서비스 또는 무언가 에서이 행동을 보았을 것 같아. 위에서 설명한 방법을 사용하여 새로운 환경 변수를 추가했습니다. 그런 다음 새 명령 프롬프트를 열고 "echo % <myvar> % 명령을 사용하여 값을 볼 수있었습니다. 둘 다 답변 해 주셔서 감사합니다.
Chad Braun-Duin

5
PowerShell을 사용자의이 조각은 도움이 될 수 있습니다 poshcode.org/2049
앤더스 Zommarin

8
cmd를 사용하는 경우 env 변수를 변경하면 다시 시작해야합니다.
Neil McGuigan

4
내 PC에 Scala를 설치했지만 PATH가 업데이트되지 않았습니다. 아마도 MSI가 WM_SETTINGCHANGE 메시지를 브로드 캐스트하지 않았을 것입니다. WM_SETTINGCHANGE 메시지를 트리거하기 위해 업데이트되는 더미 시스템 변수 (예 : CHANGE_TO_UPDATE = z)를 추가했습니다. 문제가 해결되었습니다
Darren Bishop

3
링크에 대한 404 :-(
Samoth

63
  1. 명령 프롬프트에서 다음을 입력하십시오. runas /user:yourusername@yourdomain cmd
  2. 새 cmd 프롬프트가 열리면 다음을 입력하십시오. taskkill /f /im explorer.exe
  3. 그런 다음 다음을 입력하십시오. explorer.exe

이제 모든 명령 프롬프트를 닫은 후 PATH변수가 실제로 업데이트되었음을 ​​알 수 있습니다.

모든 명령 프롬프트를 닫아야합니다. 새 명령 프롬프트를 다시 열고 path를 입력하면 새 데이터가 표시됩니다.


6
이 페이지의 모든 답변 중 이것이 실제로 나를 위해 일한 유일한 것입니다. 감사합니다!!
coredumperror

2
이것은 나를 위해 일했습니다. 문제는 탐색기를 통해 cmd를 실행하면 (긴 경로를 입력하지 않아도 됨) 모든 탐색기 창을 닫더라도 탐색기가 닫히지 않는다는 것입니다. 해결책을 주셔서 감사합니다 :)
Steve Mc

나를 위해 일했다. 작업 관리자를 사용하여 탐색기 작업을 종료하고 다시 시작할 수도 있습니다 (파일> 새 작업 실행).
adabyron

7
어. 프로세스 중 하나가 중단되지 않은 경우 Windows 탐색기를 종료하지 마십시오. 대신, 종료 창 대화 상자를 열고를 누른 상태에서 취소하십시오 ctrl+alt+shift. Windows 탐색기를 깨끗하게 종료합니다. Vista +에서는 종료 창 대화 상자를 찾기가 더 어렵지만 (여전히 7 이상 (약 8과 10은 확실하지 않음)) 두 번째 방법이 있습니다. 시작 메뉴의 빈 부분을 Ctrl + Shift + 마우스 오른쪽 버튼으로 클릭하고 탐색기 종료를 선택하십시오. 8에서 종료 옵션은 동일하지만 시작 메뉴가 아닌 작업 표시 줄을 사용합니다.
케빈 카스 카트

1
+1 이것은 Windows 7에서 매력으로 작동합니다. 참고로, CTRL + ALT + SHIFT를 사용했고 Windows 작업 관리자에서 모든 explorer.exe 프로세스 를 종료 한 다음 새 작업 버튼을 눌러 다시 시작했습니다 .
Marco Demaio

19

명심해야 할 것은 많은 프로그램이 처음 시작될 때 환경 변수를 얻으므로 창을 다시 시작할 필요는 없지만 일부 프로그램은 새 변수를 사용하기 전에 시작될 수 있다는 것입니다. 이것의 좋은 예는 PATH를 추가 한 후 새 명령 프롬프트 창을 열어야한다는 것입니다 (예, 이것으로 넘어졌습니다).


3
이 문제는 모든 서비스에 영향을 미치며 다시 시작한 서비스라도 새로운 환경 변수가 표시되지 않습니다.
gimel

1
svchost 프로세스를 공유하지 않았기 때문에 확실하지 않습니까?
Mark Sowul

16

이 질문에 대해 가장 많이 투표 된 답변에 대해 언급 할만한 평판이 충분하지는 않지만, 정확히 맞지 않다고 말하고 싶습니다. 이 게시물에서 어떤 해결 방법을 시도하든 실제로 아무것도 작동하지 않기 때문에 이것을 알고 있습니다.

답변에 링크 된 KB 기사는 실제로 다음과 같이 말합니다.

그러나 환경 변수를 수정해도 즉시 변경되는 것은 아닙니다. 예를 들어, 변경 한 후 다른 명령 프롬프트를 시작하면 환경 변수에 이전 (현재 아님) 값이 반영됩니다. 로그 오프했다가 다시 로그온 할 때까지 변경 사항이 적용되지 않습니다.

명령 프롬프트를 다시로드 한 후 이전 값으로 다시 설정하는 환경 변수에 대한 부분은 Windows Server 2008에서 경험 한 것과 정확히 같습니다.

기사는 다음과 같이 말합니다.

로그 오프하지 않고 이러한 변경 사항을 적용하려면 시스템의 모든 창에 WM_SETTINGCHANGE 메시지를 브로드 캐스트하여 Windows 탐색기, 프로그램 관리자, 작업 관리자, 제어판 등과 같은 관심있는 응용 프로그램이 업데이트를 수행 할 수 있도록하십시오.

시스템 환경 변수를 변경했거나 실제로 작동하는 경우 Explorer가 WM_SETTINGCHANGE 메시지를 브로드 캐스트한다는 의미는 아닙니다. 명령 프롬프트에서 KB 문서에 제안 된 내용을 어떻게 수행할지 확실하지 않습니다 (변경 사항을 즉시 전파하기 위해).


1
이것은 나에게 맞는 유일한 대답입니다. 탐색기를 어려운 방법으로 또는 "적절한"방법으로 죽이는 것을 포함하여 다른 어떤 것도 차이를 만들지 않습니다.
Hashim

4

env를 만드십시오. 변수 즉시 사용 가능 :

1. Open a shell

변경하려는 환경 변수에 따라 다음을 수행하십시오.

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

새 경로가 환경 변수에 추가되었는지 확인하십시오.

3. echo %PATH%

끝난.

재부팅시 변수를 사용 가능하게 설정

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에서 테스트 및 작업


3

가능한 서비스 솔루션은 다른 사용자 (LocalSystem, LocalService, NetworkService 이외)로 임시로 실행하는 것입니다. 예를 들어 Apache 서비스의 경우 아무런 문제없이 작동합니다. 서비스 계정 열린 services.msc 콘솔을 변경하려면 서비스를 선택하고 서비스 속성을 클릭 한 다음 두 번째 탭에서 사용자의 로그온 자격 증명을 입력하십시오. 서비스를 다시 시작하면 환경 변수가 최신 상태 여야합니다.

이 사용자보다 로그에 기록 된 사용자 인 경우 문제없이 작동합니다. 현재 사용자 계정을 사용하는 경우 explorer.exe를 다시 시작해야 할 수도 있습니다. 또한 일반 사용자 계정으로 서비스를 실행하면 보안 위험이 발생할 수 있습니다.


1

사람들이이 답변을 아직 추가하지 않았으므로 SETX 명령으로 재부팅 후에도 영구적 인 시스템 변수를 설정할 수 있다고 언급하고 싶습니다.

예 :

setx PATH "%PATH%;c:\temp\my\new\path"

위의 명령은 현재 명령 창에서 작동하지 않으며 적용하기 전에 새 명령 창을 열어야합니다. 결과적으로 유스 케이스에 따라 다릅니다. 이를 위의 다른 기술 중 하나와 결합해야 할 수도 있습니다.

자세한 내용은 다음 URL을 참조하십시오 .


작동하지 않습니다 : / "유효하지 않은 구문"
Joe DF

1
지금 시도하십시오. 분명히 큰 따옴표가 필요했습니다.
더그

고마워, 그래, 나는 생각했다. ... 절단 경고를 제외하고는 그것을 추가 할 수 없다 ... :(
Joe DF
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.