이 시스템에서 스크립트를 실행할 수 없으므로 ... 파일을 로드할 수 없습니다.
자세한 내용은 about_Execution_Policies(https://go.microsoft.com/fwlink/?LinkID=135170를 참조하십시오.
❓상황
Window PowerShell으로 yarn 설치 후, 스크립트를 이용해 yarn이 제대로 설치되었는지 확인하는 과정에서 에러 발생.
🔎 원인 파악
Script Execution Policy( = 스크립트 실행 권한) 때문에 발생한 문제
✨ 해결 방법
Script Execution Policy 설정하기
1. Script Execution Policy 설정상태 확인
# Window PowerShell
Get-ExecutionPolicy
2. Script Execution Policy 설정하기
script Execution Policy를 RemoteSigned으로 설정을 바꾼다.
※ 관리자 권한으로 실행된 Windows PowerShell에서 명령어를 입력해야 적용이 된다.
# Window PowerShell
Set-ExecutionPolicy RemoteSigned
만약 Set-ExecutionPolicy 명령어를 입력해서 아래와 같은 에러가 뜬다면, 관리자모드로 PowerShell을 실행해줘야한다.
🏝️ 추가 내용
Script Execution Policy 이란 무엇일까?
Script Execution Policy 이란 무엇일까?
º PowerShell의 실행 정책은 PowerShell이 구성 파일을 로드하고 스크립트를 실행하는 조건을 제어하는 안전 기능이다.
º 이 기능은 악성 스크립트의 실행을 방지하는 데 도움이 된다.
👉 예를 들어 해커가 내 컴퓨터에 들어와서 스크립트라는 명령어를 실행하여 내 컴퓨터 정보를 빼앗아 가는 것에 대한 보호기능이라고 생각하면 될거 같다.
내가 정한 Script Execution Policy 대표 3가지
Restricted : 기본값
º Windows 클라이언트 컴퓨터에 대한 기본 실행 정책입니다.
º 개별 명령을 허용하지만 스크립트는 허용하지 않습니다.
º 서식 및 구성 파일(), 모듈 스크립트 파일() 및 PowerShell 프로필(.ps1xml``.psm1)을 비롯한 모든 스크립트 파일의 실행을 방지합니다.
Unrestricted : 권장(X)
º 비 Windows 컴퓨터에 대한 기본 실행 정책이며 변경할 수 없습니다.
º 서명되지 않은 스크립트를 실행할 수 있습니다. 악성 스크립트를 실행할 위험이 있습니다.
º 로컬 인트라넷 영역이 아닌 스크립트 및 구성 파일을 실행하기 전에 사용자에게 경고합니다.
Remotesigned : 권장(O)
º Windows 서버 컴퓨터에 대한 기본 실행 정책입니다.
º 스크립트를 실행할 수 있습니다.
º 전자 메일 및 인스턴트 메시징 프로그램을 포함하는 인터넷에서 다운로드한 스크립트 및 구성 파일에 대해 신뢰할 수 있는 게시자의 디지털 서명이 필요합니다.
º 로컬 컴퓨터에 기록되고 인터넷에서 다운로드되지 않은 스크립트에는 디지털 서명이 필요하지 않습니다.
º cmdlet을 사용하는 등 스크립트가 차단 해제된 경우 인터넷에서 다운로드되고 서명되지 않은 스크립트를 Unblock-File 실행합니다.
º 악의적일 수 있는 인터넷 및 서명된 스크립트 이외의 원본에서 서명되지 않은 스크립트를 실행할 위험이 있습니다.
위의 내용을 축약정리하면 아래와 같다.
Restricted으로 설정되어 있는 경우에는, 외부에서 다운받은 스크립트 및 내가 만든 스크립트를 전부 차단해준다.
Unrestricted으로 설정되어 있는 경우에는, 외부에서 다운받은 스크립트 및 내가 만든 스크립트 모두 실행 가능하다.
Remotesigned으로 설정되어 있는 경우에는, 외부에서 다운받은 스크립트는 실행되지 않으나, 내가 만든 스크립트는 실행 가능하다.
마무리
스크립트를 이용하는 사람의 경우에는 스크립트 Execution Policy 기본값이 Restricted로 되어 있어 값 수정이 필요한다.
만약, 스크립트 Execution Policy 값을 unRestricted로 설정하게 된다면, 무분별하게 외부 스크립트가 사용되는 것을 허용함으로써, 외부 스크립트로 인해 정보 유출 및 해킹 피해를 입을 수 있다.
그래서, 내가 만든 스크립트는 모두 실행하게 하고, 안전하다는 것을 보여주는 디지털 서명이 인증된 외부 스크립트만 사용가능하도록 Execution Policy값을 Remotesigned로 설정하면 된다.
'공부 > 오류' 카테고리의 다른 글
오류 | 구글 로그인 API 오류(feat. React) (0) | 2022.06.17 |
---|---|
오류 | 네이버 로그인 API(ft. react) (0) | 2022.06.15 |
오류 | VSCode nvm use (0) | 2022.06.01 |
오류 | VSCode 주석 단축키 (0) | 2022.05.30 |
오류 | git add 오류 (0) | 2022.04.16 |