728x90
이 시스템에서 스크립트를 실행할 수 없으므로 ... 파일을 로드할 수 없습니다.
자세한 내용은 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

모두 예로 입력한다. [A]

 

만약 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
복사했습니다!