비 관리자 명령 프롬프트에 대해 PATH의 환경 변수가 확장되지 않습니까?


11

일반 사용자가 명령 프롬프트를 실행할 때 환경 변수를 확장하지 못하는 Windows 7 시스템이 있습니다 %PATH%. 대신 명령 프롬프트가 관리자로 실행되면 (오른쪽 클릭, 관리자로 실행 ) %PATH%적절하게 확장됩니다.

즉, %PATH%에 대한 cmd.exe(통해 표시되는 사용자로 실행 set path은 다음과 같이)이다 :

Path=%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\Wbem;%SYSTEMROOT\System32\WindowsPowerShell\v1.0\;C:\Program Files\Microsoft Windows Performance Toolkit\

... 관리자 %PATH%cmd.exe실행하는 방법은 다음과 같습니다.

Path=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\Wbem;%SYSTEMROOT\System32\WindowsPowerShell\v1.0\;C:\Program Files\Microsoft Windows Performance Toolkit\

새 사용자로 로그인하여 새 프로필을 만들려고했는데 해당 프로필에서도 문제가 지속됩니다. HKEY_CURRENT_USER\Environment\PATH존재하지 않으며 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\Path컴퓨터 특성-> 환경 변수에 정의 된 시스템 전체 경로 와 일치합니다.

누구나 이것이 무엇인지 또는 내가 볼 수있는 곳에 대한 아이디어가 있습니까?

답변:


8

내가 시도 할 두 가지.

  1. 를 실행하여 sfc /scannow더 큰 문제가 해결되는지 확인하십시오.
  2. 에서 레지스트리 Path키를 확인하십시오 HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment. 무엇 유형 . 말해야한다REG_EXPAND_SZ

그거였다. 정상적인 기계를 가지고 REG_SZ문제를 설정하면 다시 설정하면 문제가 해결됩니다 REG_EXPAND_SZ.
Steve Vigneau

@ 스티브-스위트! 나는 심지어 그것에 대해 뭔가를 배웠습니다 :)
Nixphoe

1
하지만 궁금합니다. 왜 레지스트리에 잘못된 값 유형으로 env var를 작성합니까? 이전에이 문제가 발생한 것을 기억하지 못합니다. Windows 8.1 Update 1을 사용하고 있으며 XP에서도이 문제가 발생한 것 같습니다! support.microsoft.com/kb/329308
Adrián Pérez

0

Maven을 구성하는 동안 동일한 문제가 발생했습니다 ...

수퍼 유저 에서이 문제에 대해 밝힌 게시물을 찾았 지만 나에게 도움이되지 않았습니다. 관리 셸은 작동하지만 사용자 셸은 작동하지 않기 때문에 문제는 권한 상승에 관한 것으로 보입니다. 마지막으로 사용자 변수를 시스템 변수로 다시 작성하고 전역 경로에 추가하기로 결정했습니다.

이것은 몇 가지 변수에 효과적이지만 여전히 확장되지 않는 한 쌍이 있습니다. 나는 새로운 이름으로 두 번 다시 만들었습니다. 그러나 UAC를 비활성화하고 다시 부팅 한 후 UAC를 다시 활성화하고 다시 부팅 한 후 변수가 사용자 셸에서 올바르게 확장되었습니다.


0

나는 매우 비슷한 문제를 겪었다. 간단한 해결책은 경로 정의에서 별칭 뒤에 세미콜론 을 추가 하는 것이었다 .

긴 이야기:

사용하고 node.js있으므로 사용자 환경 변수를 통해 NODE_HOME 별칭을 정의했습니다. 그런 다음이 별명을 PATH 환경 변수에 추가 합니다.

내가 찾는 것은 다시 부팅 한 후, 쉘의 경로를 잃은 것입니다 NODE_HOME 그렇게 npm등을하지 않습니다 작동합니다. 무슨 일이야?

검사 결과, NODE_HOME 이 설정되었지만 마법으로 세미콜론을 얻었습니다.

C:\Users\ob>echo %NODE_HOME%
C:\Users\ob\node-8.11.1;

PATH는 이제 노드 폴더의 확장 경로 대신 리터럴 문자열 % NODE_HOME %으로 끝납니다 .

C:\Users\ob>echo %PATH%
C:\Program...rams\Git\cmd;%NODE_HOME%

그것을 해결하기 위해:

먼저 NODE_HOME 정의 끝에서 잘못된 세미콜론을 삭제하십시오 .

둘째, PATH 정의에서 NODE_HOME 기호 뒤에 세미콜론을 추가하십시오 .

C:\Program...rams\Git\cmd;%NODE_HOME%;

이제 새로운 쉘을 시작하고 PATH를 확장 하면 NODE_HOME 을 찾습니다 .

C:\Users\ob>echo %PATH%
C:\Program...ams\Git\cmd;C:\Users\tkobo\Installations\node-8.11.1;

그리고 npm다시 작동합니다!


-1

문제 : 당신을 올바르게 이해 한 것처럼 제 문제는 단지 사소한 것이 었습니다. 내 "경로"에 ...; % ANT_HOME % \ bin; ...이 포함되어 있습니다. 시스템 (사용자 아님) 변수에서 변수 ANT_HOME을 올바르게 설정했으며 "echo % ANT_HOME %"와 같은 CMD-> SET가 올바르게 인쇄되었습니다. .

해결책 : 폴더 를 c : \ dev \ 3rd \ ant ... 에서 c : ** Programm Files (x86) ** \ dev \ 3rd \ ant ... 로 이동 하여 문제를 해결했습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.