Q. 명령어의 의미는?
1. Set-ExecutionPolicy :
PowerShell에서 스크립트 실행 정책을 변경하는 명령어. 예를 들어 .ps1 파일 실행이 막혀 있을 때 실행 가능하도록 정책을 바꾸는 데 사용함.
2. -Scope Process : 적용 범위를 현재 실행 중인 PowerShell 프로세스로 제한함. 즉, 지금 열려 있는 PowerShell 창에서만 적용됨. 그래서 PowerShell 창을 닫으면 설정이 사라져서 시스템 전체 설정을 바꾸지 않기 때문에 비교적 안전함.
결론적으로 이 명령어는 "현재 PowerShell 창에서만, 로컬 스크립트는 실행 가능하게 하고, 인터넷에서 받은 스크립트는 서명된 경우에만 실행하도록 허용한다."는 뜻임
예를 들어 Expo, EAS, npm, Codex, 개발 도구 설치 과정에서 PowerShell 스크립트 실행이 막히면 임시로 이렇게 실행할 수 있음.
"Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned" 실행 후 그 다음 필요한 명령을 실행하면 됨.
확인 명령어로,
현재 적용된 실행 정책 : Get-ExecutionPolicy
범위별로 보고 싶으면 : Get-ExecutionPolicy -List
영구적으로 완화하려면 -Scope Process 대신 CurrentUser 또는 LocalMachine 범위를 쓴다. 가장 추천하는 방식은 현재 사용자 계정에만 적용하는 것이다. 아래의 명령어를 실행하면 PowerShell 창을 닫아도 계속 유지된다.
"Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned"
실행하면 중간에 이런 확인 메시지가 나올 수 있는데 Y 입력 후 엔터를 하면 된다.
Do you want to change the execution policy?
[Y] Yes [A] Yes to All [N] No ...
Q. 관리자 권한으로 전체 PC에 적용하려면?
PC 전체 사용자에게 적용하려면 PowerShell을 관리자 권한으로 실행한 뒤 아래 명령어를 사용한다. 다만 혼자 쓰는 개발 PC라면 보통은 CurrentUser가 더 좋다.
Set-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy RemoteSigned
현재 사용자 설정을 지우고 기본값으로 돌리려면,
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Undefined
또는 더 엄격하게 막고 싶으면,
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Restricted