갑자기 PowerShell에서 npm이 안된다??

박건형·2024년 12월 14일
post-thumbnail

원인

PowerShell의 실행 정책 때문에 발생합니다

아레는 PowerShell 실행정책 목록들입니다

AllSigned

스크립트를 실행할 수 있습니다.
로컬 컴퓨터에서 작성하는 스크립트를 포함하여 신뢰할 수 있는 게시자가 모든 스크립트 및 구성 파일에 서명해야 합니다.
아직 신뢰할 수 있거나 신뢰할 수 없는 것으로 분류되지 않은 게시자의 스크립트를 실행하기 전에 메시지를 표시합니다.
서명되었지만 악의적인 스크립트가 실행될 위험이 있습니다.

Bypass

아무것도 차단되지 않으며 경고 또는 프롬프트가 없습니다.
이 실행 정책은 PowerShell 스크립트가 더 큰 애플리케이션에 기본 제공되는 구성 또는 PowerShell이 자체 보안 모델을 가진 프로그램의 기초가 되는 구성을 위해 설계되었습니다.

Default

default 실행 정책을 설정합니다.
Restricted Windows 클라이언트의 경우
Windows 서버용 RemoteSigned .

RemoteSigned

default Windows 서버 컴퓨터에 대한 실행 정책입니다.
스크립트를 실행할 수 있습니다.
전자 메일 및 인스턴트 메시징 프로그램을 포함하는 인터넷에서 다운로드되는 스크립트 및 구성 파일에 대해 신뢰할 수 있는 게시자의 디지털 서명이 필요합니다.
로컬 컴퓨터에 작성되고 인터넷에서 다운로드되지 않은 스크립트에는 디지털 서명이 필요하지 않습니다.
cmdlet을 사용하는 등 스크립트가 차단 해제된 경우 인터넷에서 다운로드되고 서명되지 않은 스크립트를 Unblock-File 실행합니다.
악의적일 수 있는 인터넷 및 서명된 스크립트 이외의 원본에서 서명되지 않은 스크립트를 실행할 위험이 있습니다.

Restricted

default Windows 클라이언트 컴퓨터에 대한 실행 정책입니다.
개별 명령을 허용하지만 스크립트는 허용하지 않습니다.
서식 및 구성 파일(), 모듈 스크립트 파일() 및 PowerShell 프로필(.ps1xml.psm1)을 비롯한 모든 스크립트 파일의 실행을 방지합니다.ps1.

Undefined

현재 scope실행 정책 집합이 없습니다.
모든 범위 Undefined의 실행 정책이 있는 경우 유효한 실행 정책은 Restricted Windows 클라이언트 및 Windows Server용 RemoteSigned 에 대한 것입니다.

Unrestricted

Windows가 default 아닌 컴퓨터에 대한 실행 정책이며 변경할 수 없습니다.
서명되지 않은 스크립트를 실행할 수 있습니다. 악의적인 스크립트를 실행할 위험이 있습니다.
로컬 인트라넷 영역이 아닌 스크립트 및 구성 파일을 실행하기 전에 사용자에게 경고합니다.

해결방안

1.관리자권한

PowerShell을 관리자 권한으로 실행합니다.

2.실행정책 확인

 Get-ExecutionPolicy

명령어로 실행정책을 확인합니다.
보통은 Restricted으로 되어있을겁니다.

3.정책 바꾸기

Set-ExecutionPolicy RemoteSigned

명령어를 사용하여 실행정책을 RemoteSigned로 바꿔줍니다.

실행 확인해보기

PowerShell에 npm-v 를 사용하여 npm이 잘 작동하는지 확인하여줍니다 .

포스트 봐주셔서 감사합니다😊

profile
프론트엔드 개발자

0개의 댓글