개요
윈도우 PowerShell은 사용자가 실수로 스크립트를 실행하여 시스템에 오류가 발생하는 것을 예방하기 위한 정책을 운영하고 있습니다.
이번 글에서는 개발 편의성을 위해 스크립트 실행 정책을 변경해 보겠습니다.
본문
오류
윈도우 환경에서 node.js
어플개발을 위한 프로젝트 구성(yarn install
)시 아래와 같은 오류가 발생합니다.
yarn : 이 시스템에서 스크립트를 실행할 수 없으므로 C:\Program Files\nodejs\yarn.ps1 파일을 로드할 수 없습니다. 자세한 내용은 about_Execut
ion_Policies(https://go.microsoft.com/fwlink/?LinkID=135170)를 참조하십시오.
처리
요약하면, 오류 문구에 안내되어 있는 링크로 이동하여 기술되어 있는 설명을 읽고, PowerShell의 실행 정책을 변경합니다.
※ 실행정책 설정을 위해 PowerShell은 관리자 권한으로 실행합니다.
우선, 현재 상태를 확인합니다.
Get-ExecutionPolicy
Restricted
달리 설정한 것이 없기 때문에 현재는 기본 실행 정책인 Restricted
가 적용된 상태입니다.
이 정책은
- 개별 명령의 실행은 허용하지만, (이들 명령을 묶어 놓은) 모든 종류의 스크립트의 실행은 허용되지 않습니다.
- 서식 지정 및 구성 파일 (
.ps1xml
), 모듈 스크립트 파일 (.psm1
) 및 프로필(.ps1
)을 비롯한 모든 스크립트 파일의 실행이 허용되지 않습니다.
스크립트 실행을 위해 Set-ExecutionPolicy
명령을 사용하여, 윈도우 서버 컴퓨터의 기본 실행 정책인 RemoteSigned
로 정책을 변경하였습니다.
# 실행정책을 `RemoteSigned` 로 변경합니다.
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
실행 규칙 변경
실행 정책은 신뢰하지 않는 스크립트로부터 사용자를 보호합니다. 실행 정책을 변경하면 about_Execution_Policies 도움말
항목(https://go.microsoft.com/fwlink/?LinkID=135170)에 설명된 보안 위험에 노출될 수 있습니다. 실행 정책을
변경하시겠습니까?
[Y] 예(Y) [A] 모두 예(A) [N] 아니요(N) [L] 모두 아니요(L) [S] 일시 중단(S) [?] 도움말 (기본값은 "N"): Y
이를 통해,
- 스크립트를 실행할 수 있습니다.
- 인터넷에서 다운로드하지 않았거나, 로컬 컴퓨터에서 작성한 스크립트는 디지털 서명 없이 실행이 가능합니다.
결론
인터넷에서 다운로드한 스크립트 파일을 내용 확인 없이 실행하는 것은 위험한 행동입니다. 따라서 이로 인한 피해가 발생하지 않도록 윈도우의 PowerShell 스크립트 실행정책은 기본적으로 스크립트 파일을 실행할 수 없도록 하고 있습니다.
하지만 소프트웨어를 개발하며 각종 스크립트를 작성하고 실행해야 하는 입장에서는 이러한 정책이 상당히 불편할 것입니다. 이번 글에서는 개발의 편의성을 증대하기 위하여 PowerShell의 스크립트 실행 정책을 완화할 수 있는 방법을 확인하였습니다.
본 글에서 예시로 적용한 RemoteSigned
외에도 다양한 스크립트 실행 정책이 존재하기 때문에 이를 확인하여 각자의 환경에 맞도록 설정할 수 있습니다. 이를 통해 스크립트의 내용을 이해할 수 있는 사용자는 충분히 편리한 개발 환경을 구축할 수 있을 것입니다.
참고
'운영체제' 카테고리의 다른 글
[cronjob] 스크립트의 상대경로 수정 (0) | 2022.04.16 |
---|---|
[Linux] Booting 시 Script 실행하기 (0) | 2021.12.19 |
[Ubuntu] Offline package 설치 (1) | 2021.06.24 |
[linux] Self-signed certificate 를 신뢰할 수 있는 인증서로 추가하기 (0) | 2021.06.18 |
[리눅스] Linux From Scratch (10.1) (0) | 2021.04.28 |