it-swarm-ko.tech

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

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

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

186
Chad Braun-Duin

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

귀하의 문제 설명에서 귀하가 가지고있는 특정 문제를 알 수 없습니다. 작동하지 않는 특정 시나리오에 대해 더 자세히 말씀해 주시겠습니까?

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

166
Charlie
  1. 명령 프롬프트에서 runas /user:[email protected] cmd
  2. 새로운 cmd 프롬프트가 열리면 taskkill /f /im Explorer.exe
  3. 그런 다음 Explorer.exe

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

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

66
Ron AndKim Stengel

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

20
nedm

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

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

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

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

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

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

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

16
testworks

환경을 만들어라. 변수 즉시 사용 가능 :

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

4
Pedro Sousa

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

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

3
Odin

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

예 :.

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

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

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

1
Doug