04_트러블슈팅

김민창·2022년 2월 26일
0

trouble shooting

목록 보기
4/8
post-thumbnail

이슈

powershell의 명령어가 아무것도 먹히지 않는다.
드라이브를 찾을 수 없습니다. 이름이 '.C'인 드라이브가 없습니다

  • 화면은 다음과 같다
  • 처음에는 여기를 참고했는데 에러는 같지만 해결은 하지 못했음

  • 시스템 - 고급 시스템 설정 - 고급 - 환경 변수로 사용자 변수를 확인했을때 PATH.C로 시작하는 경로가 없었다

  • 물론 시스템 변수의 PATH에도 존재하지 않음


(임시)해결

  • 다른 명령어는 콘솔에서 안되는데 $ 달러사인은 가능함

  • $env:PATH명령어로 PATH가 어떻게 구성되어있는지 확인을 했다

  • 하나씩 봐야해서 힘들었다

  • ; 세미콜론으로 한문장을 구분하면 되며, 빨간 네모를 확인하면 .C로 시작하는 Zulu에 관련한 환경변수가 존재하는것을 확인할 수 있다

  • 하지만 해당 PATH가 주입되는것이 어디에 설정을 해야하는지 못찾았다

  • 할때마다 노가다지만... 해당 powershell에서만 바꿔주는식으로 잠시 하기로 했다

  • $env:PATH 명령어로 나온 결과를 메모장에 모두 옮기고, .C/ 라고 되어있는 부분의 .을 제거했다

  • 그후 $env:PATH = "(변경한 경로)" 명령어를 통해 일시적으로 환경변수를 변경해주었다

  • 그리고 확인을하면 제대로 들어간것을 확인할 수 있다

  • 다른 기본 명령어도 잘되는것을 확인할 수 있다


  • 하지만 아직 완벽하게 해결한 것이 아니다

  • 이렇게 수동으로 환경변수를 바꿔주면 해당 powershell 을 끌때마다 다시 환경변수를 지정해주어야 한다

  • 추후에 해결방법을 알아낸다면 추가로 이어 쓰겠습니다.


해결

여기를 참고했습니다

  • SetEnvironmentVariable를 활용했습니다
SetEnvironmentVariable(variable, value)SetEnvironmentVariable(variable, value, target)
현재 프로세스에 저장되어 있는
환경 변수를 생성, 수정 또는 삭제
현재 프로세스 또는 현재 사용자나 로컬 컴퓨터에 예약된 Windows
운영 체제 레지스트리 키에 저장되어 있는 환경 변수를 생성, 수정 또는 삭제
  • variablevalueString이고,
    targetEnvironmentVariableTarget 이다

  • variable는 환경 변수의 이름

  • valuevariable에 할당할 값

  • target은 환경 변수의 위치를 지정하는 EnvironmentVariableTarget 열거형 값 중 하나

  • EnvironmentVariableTarget 열거형

"Machine""Process""User"
환경변수는 Windows 운영 체제 레지스트리의 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment
키에서 저장되거나 검색된다. 이 값은 Windows 시스템에서만 실행되는 .NET 구현에 사용되어야 한다
환경 변수는 현재 프로세스와 연결된 환경 블록에서 저장되거나 검색된다환경 변수는 Windows 운영 체제 레지스트리의 HKEY_CURRENT_USER\Environment키에서 저장되거나 검색된다.
이 값은 Windows 시스템에서만 실행되는 .NET 구현에 사용되어야 한다
  • 해당 환경변수를 변경하고 싶다면 Machine을 사용하면 된다

  • 현재 $env:Path에 정상적인 값을 집어넣은 상태이기 때문에 value에는 현재값을 그대로 삽입

  • 또다른 powershell을 열더라도 환경변수에 에러가 없는것을 확인할 수 있다

profile
개발자 팡이

0개의 댓글