본문 바로가기

Tool

[Yarn] Powershell PSSecurityException 해결

728x90

Yarn

문제점

Yarn을 설치하여 Vuepress 사이트를 구축하려고 하는데 Powershell에서 명령을 실행시 다음과 같은 오류가 발생하였습니다.

PS C:\workspace\docs> yarn init
yarn : 이 시스템에서 스크립트를 실행할 수 없으므로 C:\Users\oofbird\AppData\Roaming\npm\yarn.ps1 파일을 로드할 수 없습니다. 자세한 내용은 about_Execution_Policies(https://go.microsoft.com/fwlink/?LinkID=135170)를 참조하십시오.
위치 줄:1 문자:1
+ yarn init
+ ~~~~
    + CategoryInfo          : 보안 오류: (:) [], PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess
PS C:\workspace\docs>

원인

Powershell은 기본적으로 스크립트를 실행하지 못하게 하고 있습니다.

정책보기

관리자모드로 Powershell을 실행한 뒤 ExecutionPolicy 명령으로 현재 정책을 확인할 수 있습니다.

PS C:\workspace> ExecutionPolicy
Restricted
PS C:\workspace>

여기서 Restricted는 다음 특성을 가집니다.

  • 윈도우 클라이언트 컴퓨터의 기본 실행정책
  • 개별 명령은 허용하나 스크립트는 허용안됨
  • .ps1xml, .psm1, .ps1 등을 포함하여 모든 스크립트 파일은 실행안됨

해결책

Powershell의 실행정책을 Set-ExecutionPolicy 명령으로 변경합니다.

이때 선택가능한 정책은 3가지 입니다.

  • RemoteSigned : 인터넷에서 다운받은 스크립트나 구성파일의 경우 신뢰하는 배포자의 디지털 서명이 필요합니다.
  • Unrestricted : 미서명된 스크립트도 실행합니다. 일부 경고를 표시합니다.
  • Bypass : 차단되는 것이 없으며, 경고도 없습니다.

보안을 고려하여 RemoteSigned를 추천하며, 일부 실행되지 않을 경우 Unrestricted를 사용하시면 됩니다.

PS C:\workspace> Set-ExecutionPolicy RemoteSigned
실행 규칙 변경
실행 정책은 신뢰하지 않는 스크립트로부터 사용자를 보호합니다. 실행 정책을 변경하면 about_Execution_Policies 도움말
항목(https://go.microsoft.com/fwlink/?LinkID=135170)에 설명된 보안 위험에 노출될 수 있습니다. 실행 정책을
변경하시겠습니까?
[Y] 예(Y)  [A] 모두 예(A)  [N] 아니요(N)  [L] 모두 아니요(L)  [S] 일시 중단(S)  [?] 도움말 (기본값은 "N"): A

PS C:\workspace> yarn
yarn install v1.22.19
info No lockfile found.
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...

success Saved lockfile.
Done in 0.14s.

PS C:\workspace>

 

반응형