cyphen156

PSSecurityException : Windows PowerShell 보안 정책 서명 본문

잡생각 정리글

PSSecurityException : Windows PowerShell 보안 정책 서명

cyphen156 2023. 11. 8. 17:26

가끔가다가 Vue/React 같은 프로젝트를 생성하려고 npm 명령어를 치면 뜨는 보안오류다.

Windows의 실행 정책 때문에 발생하는데 모바일에서 비인증 애플리케이션 설치할 때(알수없는 게시자)뜨는 경고와 같이 무시하고 설치하기 위해 보안 기준을 낮춰주면 된다.

해결 방법은 간단하다. 

1. 검색 창에서 Windows PowerShell을 검색한 뒤 관리자 권한으로 실행시켜준다.

2. PowerShell 창에서 Set-ExecutionPolicy ~~~를 입력하면 된다.

그러면 실행규칙 변경에 대한 경고사항이 나오는데 Y또는 A눌러주면 된다.

 

그리고 나서 VS Code와 커맨드라인(CMD)터미널을 종료했다가 다시 실행시키면 정상적으로 CLI를 수행할 수 있게 된다.

 

++ 추가 설명

Set-ExecutionPolicy ~~~

보안 설정 세팅하는 명령어

Get-ExecutionPolicy

설정된 보안 설정을 화면에 출력하여 사용자가 볼수 있게 하는 명령어

 

set-ExecutionPolicy-실행 정책 명령어(~~~)는 다음과 같다.

  • AllSigned. 로컬 컴퓨터에 작성된 스크립트를 포함하여 신뢰할 수 있는 게시자가 모든 스크립트 및 구성 파일에 서명해야 합니다.
  • Bypass. 아무것도 차단되지 않으며 경고 또는 프롬프트가 없습니다.
  • Default입니다. 기본 실행 정책을 설정합니다. Windows 클라이언트 또는 Windows 서버용 RemoteSigned에 대해 제한됩니다.
  • RemoteSigned. 인터넷에서 다운로드한 모든 스크립트 및 구성 파일이 신뢰할 수 있는 게시자에 의해 서명되어야 합니다. Windows 서버 컴퓨터에 대한 기본 실행 정책입니다.
  • Restricted. 구성 파일을 로드하거나 스크립트를 실행하지 않습니다. Windows 클라이언트 컴퓨터에 대한 기본 실행 정책입니다.
  • Undefined. 범위에 대해 실행 정책이 설정되지 않았습니다. 그룹 정책에 의해 설정되지 않은 범위에서 할당된 실행 정책을 제거합니다. 모든 범위의 실행 정책이 정의되지 않은 경우 유효 실행 정책이 제한됩니다.
  • Unrestricted. PowerShell 6.0부터는 비 Windows 컴퓨터에 대한 기본 실행 정책이며 변경할 수 없습니다. 모든 구성 파일을 로드하고 모든 스크립트를 실행합니다. 인터넷에서 다운로드한 서명되지 않은 스크립트를 실행하는 경우 실행하기 전에 사용 권한을 묻는 메시지가 표시됩니다.

보통 RemoteSigned나 Unrestricted를 사용하여 개발한다.

RemoteSigned는 내가 작성한 코드와 인터넷에서 가져온 신뢰할수 있는 서명 (대기업, 상장기업 코드 등 )

근데 Unrestricted 얘는 조금 조심하자.  아무데서나 코드 가져와서 실행하면 해킹당할수 있다.

 

// 원래는 설정되어있엇는데 이번에 컴퓨터 초기화하면서 설정이 초기화됬나보다. 

// 다른 글에 더 자세하게 설명해놓은 좋은글들이 많으니 더 알고싶으면 구글링해서 보길 바란다.

// 아니면 MS 공식 사이트에 들어가서 찾아보길 바란다. 

Set-ExecutionPolicy (Microsoft.PowerShell.Security) - PowerShell | Microsoft Learn

 

Set-ExecutionPolicy (Microsoft.PowerShell.Security) - PowerShell

이 cmdlet은 Set-ExecutionPolicy Windows 컴퓨터에 대한 PowerShell 실행 정책을 변경합니다. 자세한 내용은 about_Execution_Policies를 참조하세요. Windows가 아닌 컴퓨터의 경우 PowerShell 6.0부터 기본 실행 정책은

learn.microsoft.com