TechFeedTechFeed
개발자 작업환경

npm.ps1 실행 정책 오류 | CurrentUser만 RemoteSigned로

PowerShell에서 npm, npx를 입력하면 npm.ps1을 로드할 수 없다는 오류가 날 때, 관리자 권한 없이 CurrentUser 실행 정책을 RemoteSigned로 바꾸는 방법과 범위별 차이를 마이크로소프트 문서로 확인했습니다.

by

PowerShell에서 npm이나 npx를 입력했는데 "이 시스템에서 스크립트를 실행할 수 없으므로 npm.ps1 파일을 로드할 수 없습니다"가 나오면 실행 정책을 CurrentUser 범위에서 RemoteSigned로 바꾸면 됩니다. Node.js는 npm과 npx를 .ps1 스크립트로도 설치하는데, 정책이 Restricted이면 이 파일이 막힙니다. 아무 범위에도 정책을 정하지 않은 Windows 클라이언트는 Restricted가 적용됩니다. CurrentUser 범위는 관리자 권한 없이 바꿀 수 있고 재부팅도 필요 없습니다. 그룹 정책이 걸린 회사 PC라면 npm.cmd를 쓰거나 cmd 창에서 실행하세요. 근거는 10월 28일에 연 마이크로소프트 about_Execution_Policies 문서입니다.


npm.ps1 오류 요약
원인
실행 정책이 Restricted
해결 명령
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
관리자 권한
필요 없음
그룹 정책 PC
npm.cmd 또는 cmd 창 사용

npm.ps1 오류는 왜 생기나요?

바로 답 | PowerShell 실행 정책이 Restricted여서 .ps1 스크립트 실행을 막기 때문입니다. npm 자체가 고장 난 것은 아닙니다.


PowerShell에 나오는 오류 예시
npm : 이 시스템에서 스크립트를 실행할 수 없으므로 C:\Program Files\nodejs\npm.ps1 파일을 로드할 수 없습니다. 자세한 내용은 about_Execution_Policies를 참조하십시오.

PowerShell은 같은 이름의 명령이 여러 형식으로 있으면 .ps1 스크립트를 먼저 실행합니다. Node.js 설치 폴더에는 npm.cmd와 npm.ps1이 같이 들어 있어서, PowerShell에서 npm을 입력하면 npm.ps1이 불리고 실행 정책에 걸립니다. cmd 창에서는 같은 명령이 문제없이 동작하는 이유가 여기에 있습니다.


Restricted 정책은 개별 명령은 허용하지만 스크립트 파일은 모두 막습니다. 마이크로소프트 문서는 모든 범위가 Undefined이면 Windows 클라이언트의 실제 적용 정책이 Restricted라고 적고 있습니다.


관리자 권한 없이 고치는 명령은 무엇인가요?

바로 답 | Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser를 실행하고 Y로 확인하면 됩니다.


현재 정책 확인 후 CurrentUser 범위만 변경 (마이크로소프트 문서 명령)
Get-ExecutionPolicy -List Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser Get-ExecutionPolicy

CurrentUser 범위 설정은 현재 사용자에게만 적용되고 설정 파일에 저장되어, 바꾼 뒤 열린 새 PowerShell 창부터 계속 유지됩니다. LocalMachine 범위는 컴퓨터의 모든 사용자에게 적용되며 관리자 권한이 필요합니다.


RemoteSigned는 내 PC에서 만든 스크립트는 실행하고, 인터넷에서 받은 스크립트는 서명이 있어야 실행합니다. npm.ps1은 Node.js 설치 과정에서 로컬에 놓인 파일이라 이 정책에서 실행됩니다.


실행 정책 범위는 어떤 순서로 적용되나요?

바로 답 | 그룹 정책(MachinePolicy, UserPolicy)이 가장 우선이고, 그다음 Process, CurrentUser, LocalMachine 순입니다.


범위적용 대상저장 여부권한
MachinePolicy, UserPolicy그룹 정책으로 지정관리 도구에서 관리PowerShell로 바꿀 수 없음
Process지금 연 PowerShell 세션저장 안 됨, 창을 닫으면 사라짐관리자 불필요
CurrentUser현재 사용자설정 파일에 저장관리자 불필요
LocalMachine이 컴퓨터의 모든 사용자설정 파일에 저장관리자 필요

한 번만 실행하고 설정은 남기고 싶지 않다면 Process 범위를 쓰면 됩니다. 이 값은 환경 변수 $Env:PSExecutionPolicyPreference에 저장되고 창을 닫으면 사라집니다.


지금 창에서만 허용 (Process 범위)
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process
이런 분께 맞아요
개인 PC 사용자
CurrentUser 범위를 RemoteSigned로 바꾸면 npm, npx, pnpm 스크립트가 모두 동작합니다.
정책을 바꿀 수 없는 회사 PC
npm.cmd install처럼 .cmd를 붙여 부르거나 cmd 창에서 실행하세요.
파이썬 가상환경도 막힌 분
Activate.ps1도 같은 정책에 걸리니 같은 명령으로 함께 해결됩니다.

바꿨는데도 같은 오류가 나면 무엇을 보나요?

바로 답 | Get-ExecutionPolicy -List에서 그룹 정책 범위에 값이 있는지 먼저 보세요. 그 값이 우선합니다.


실행 정책 점검 체크리스트
  • ☑정책을 바꾼 뒤 PowerShell 창을 새로 열었나요? VS Code 터미널도 새로 열어야 합니다.
  • ☑Get-ExecutionPolicy -List에서 MachinePolicy나 UserPolicy가 Undefined가 아닌 값인가요? 그렇다면 관리자에게 문의하세요.
  • ☑인터넷에서 받은 스크립트라면 Unblock-File로 차단을 풀었나요?
  • ☑Windows PowerShell 5.1과 PowerShell 7을 같이 쓴다면 쓰는 쪽 창에서 확인했나요?
  • ☑Unrestricted나 Bypass처럼 필요 이상으로 넓은 정책을 쓰고 있지 않나요?

npm.ps1 실행 정책, 자주 묻는 질문

RemoteSigned로 바꾸면 보안에 문제가 없나요?

마이크로소프트 문서는 실행 정책이 보안 경계가 아니라 실수로 스크립트를 실행하지 않게 돕는 장치라고 적었습니다. RemoteSigned는 인터넷에서 받은 서명 없는 스크립트를 계속 막으니 Unrestricted보다 범위가 좁습니다.


원래대로 돌리고 싶다면?

Set-ExecutionPolicy -ExecutionPolicy Undefined -Scope CurrentUser를 실행하면 CurrentUser 범위 설정이 지워집니다.


맥이나 리눅스의 PowerShell에서도 이 오류가 나나요?

문서에 따르면 Windows가 아닌 컴퓨터의 기본 정책은 Unrestricted이고 바꿀 수 없어서 이 오류는 생기지 않습니다.


출처: Microsoft Learn, about_Execution_Policies, Microsoft Learn, Set-ExecutionPolicy (2026년 10월 28일 확인). 관련 글: 파이썬 가상환경(venv) 실행, npm 업데이트 방법.


PowerShell실행 정책npm.ps1Set-ExecutionPolicy윈도우
EXPLORE / 개발자 작업환경

이어서 읽어보기

전체 토픽 둘러보기 →