문제 상황
npm이나 npx 명령어를 실행할 때 다음과 같은 오류가 발생하는 경우가 있습니다:
File C:\Program Files\nodejs\npx.ps1 cannot be loaded because running scripts is disabled on this system.
이는 Windows PowerShell의 보안 정책으로 인해 스크립트 실행이 차단된 것입니다.
해결 방법
방법 1: 관리자 권한으로 실행 정책 변경 (권장)
- PowerShell을 관리자 권한으로 실행
- 다음 명령어 입력:
Set-ExecutionPolicy RemoteSigned
- 확인 메시지가 나오면 'Y' 입력
방법 2: 일회성 명령어 실행
특정 명령어만 실행하고 싶을 때:
powershell -ExecutionPolicy Bypass -Command "npx 실행하려는명령어"
상세 설명
ExecutionPolicy 종류
Restricted
: 기본값, 스크립트 실행 금지RemoteSigned
: 로컬 스크립트 허용, 원격 스크립트는 서명 필요AllSigned
: 모든 스크립트에 서명 필요Bypass
: 모든 스크립트 실행 허용 (보안 주의)
보안 고려사항
RemoteSigned
가 보안과 편의성의 적절한 균형점- 시스템 전체 정책 변경은 신중하게 결정
- 필요한 경우 프로젝트별로 다른 정책 적용 가능
자주 묻는 질문
Q: 정책 변경 후 되돌리고 싶다면?
A: 다음 명령어로 기본값으로 복원
Set-ExecutionPolicy Restricted
Q: 현재 실행 정책을 확인하려면?
A: 다음 명령어 사용
Get-ExecutionPolicy
Q: 관리자 권한이 없는 경우는?
A: 시스템 관리자에게 문의하거나 일회성 명령어(방법 2) 사용
마치며
이 문제는 Windows 보안 정책과 관련된 일반적인 이슈이며, 위 방법들로 쉽게 해결할 수 있습니다. 보안과 편의성을 고려하여 적절한 방법을 선택하시기 바랍니다.