윈도우11 파워쉘(PowerShell) 스크립트 실행 오류 해결하는 방법

오늘은 윈도우11 파워쉘(PowerShell) 스크립트 실행 오류 해결하는 방법에 대해 알아보겠습니다. 파워쉘 창을 열고 작성된 스크립트를 실행하려 하면 이 시스템에서 스크립트를 실행할 수 없다는 문구가 뜨면서 스크립트를 실행하지 못할 때가 있습니다.

이것은 보안 상 악의적인 스크립트 실행을 방지하기 위해 스크립트 실행 정책이 기본인 Restricted(제한)으로 설정되어 있기 때문입니다.

따라서 파워쉘에서 스크립트를 실행하려면 스크립트 실행 정책을 변경하거나 일시적으로 정책을 우회하도록 명령어를 실행하면 되는데 구체적인 방법은 아래와 같습니다.

– 목차 –

1. 파워쉘 스크립트 실행 정책 확인
2. 파워쉘 스크립트 실행 정책 변경
① 명령어로 파워쉘 스크립트 실행 정책 변경
② 설정 앱에서 파워쉘 스크립트 실행 정책 변경
③ 로컬 그룹 정책 편집기에서 파워쉘 스크립트 실행 정책 변경
3. 파워쉘 스크립트 실행 정책 우회하여 스크립트 실행





퀵 링크 메뉴에서 터미널(관리자)를 실행


작업 표시줄 시작 버튼을 우클릭하거나, [윈도우 키 + X]를 눌러 뜨는 퀵 링크 메뉴에서 터미널(관리자)를 클릭하여 파워쉘을 관리자 권한으로 실행합니다.


파워쉘 관리자 창에서 ExecutionPolicy명령어로 Restricked 정책을 확인


위와 같이 관리자 권한의 파워쉘 창이 뜨고 정책 확인을 위해 ExecutionPolicy 명령어를 입력한 후 엔터를 누릅니다.

그러면 위와 같이 스크립트 실행 정책이 뜨는데 위에서는 기본 정책인 Restricted(제한)가 뜨는 것을 볼 수 있습니다.

Restricted로 설정되어 있기 때문에 스크립트를 실행하려 하면 시스템에서 스크립트를 실행하지 못한다는 문구가 뜨면서 오류가 발생하는 것입니다.



아래의 세 가지 방법을 통해 스크립트 실행 정책을 변경하여 스크립트 실행 오류를 해결할 수 있습니다.

① 명령어로 파워쉘 스크립트 실행 정책 변경


파워쉘(PowerShell) 스크립트 실행 오류를 해결하기 위해 파워쉘 창에서 명령어로 실행 정책을 RemoteSigned로 변경


아까 위의 방법과 같은 방법으로 관리자 권한의 파워쉘 창을 열고 아래의 명령어를 복사하여 붙여 넣고 엔터를 누릅니다.

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

위 명령어는 CurrentUser(현재 사용자) 실행 정책 범위에서 스크립트 실행 정책 중 RemoteSigned로 변경하는 명령어입니다.

파워쉘의 스크립트 실행 정책 종류는 다음과 같습니다.

  • Restricted : 개별 명령어는 허용하지만 모든 스크립트 실행 차단
  • RemoteSigned : 로컬에서 작성한 스크립트는 실행할 수 있지만 원격(인터넷 등) 스크립트는 디지털 서명이 되어야만 실행 가능
  • AllSigned : 로컬이든 원격에서 받은 스크립트든 모두 디지털 서명이 되어야만 실행 가능
  • UnRestricted : 로컬이든 원격이든 디지털 서명 유무와 관계없이 모든 스크립트 실행이 가능, 원격에서 받은 스크립트는 실행 시 경고 메시지 표시
  • Bypass : 아무것도 차단하지 않고 경고 메시지도 띄우지 않음




② 설정 앱에서 파워쉘 스크립트 실행 정책 변경

위와 같이 명령어로 스크립트 실행 정책을 변경할 수 있지만 설정 앱에서 간단하게 스크립트 실행 정책을 변경하는 설정을 할 수 있습니다.

설정 창 좌측 패널에서 시스템을 선택하고 오른쪽 메뉴에서 고급을 클릭


[윈도우 키 + I]를 눌러 설정 앱을 실행하고 좌측 패널에서 시스템을 선택한 후 오른쪽 메뉴에서 고급을 클릭합니다.


고급 페이지에서 서명하지 않고 로컬 PowerShell 스크립트를 실행할수 있도록 실행 정책 변경. 원격 스크립트의 경우 서명해야 합니다. 항목을 켬


위의 페이지에서 스크롤을 내려 터미널 부분에 PowerShell 항목을 클릭하면 아래로 메뉴가 확장되면서 빨간 테두리 안에 항목이 표시되고 이 항목의 토글 스위치를 켜줍니다.

이렇게 하면 파워쉘 스크립트 실행 정책 중 아까 위에서 명령어로 변경한 RemoteSigned가 적용됩니다.

토글 스위치를 끄면 기본 정책인 restricted로 복원됩니다.



③ 로컬 그룹 정책 편집기에서 파워쉘 스크립트 실행 정책 변경

로컬 그룹 정책 편집기를 통해서도 파워쉘 스크립트 실행 정책을 변경할 수 있습니다. 설정 앱을 통한 정책 변경과 다른 점은 RemoteSigned를 포함하여 3가지 정책 옵션을 제공합니다.

[윈도우 키 + R]을 눌러 실행 창을 열고 gpedit.msc를 입력한 후 엔터를 눌러 로컬 그룹 정책 편집기를 실행합니다.

로컬 그룹 정책 편집기에서 스크립트 실행 켜기 설정 항목을 더블 클릭


좌측 트리 메뉴에서 컴퓨터 구성 > 관리 템플릿 > Windows 구성 요소 > Windows PowerShell로 이동합니다.

오른쪽 설정 목록에서 스크립트 실행 켜기를 클릭합니다.


스크립트 실행 켜기 창에서 사용으로 설정 후 실행 정책을 로컬 스크립트 및 서명된 원격 스크립트 허용으로 설정


위의 설정 창이 뜨고 좌측 상단에 구성되지 않음사용으로 설정을 변경한 후 아래에 실행 정책 박스를 클릭합니다.

위와 같이 드롭다운 메뉴가 나오고 3가지 옵션 중 로컬 스크립트 및 서명된 원격 스크립트 허용을 클릭하고 하단에 확인을 클릭합니다.

컴퓨터를 재부팅하여 변경 사항을 적용합니다.

위에 소개한 파워쉘 스크립트 실행 정책 변경 방법 3가지 중 원하는 방법을 선택하여 적용하면 Restricted에서 RemoteSigned로 실행 정책이 변경되어 파워쉘 스크립트 실행 오류가 해결됩니다.



위의 세 가지 방법을 통해 파워쉘 스크립트 실행 정책을 변경하여 문제를 해결할 수 있지만 실행 정책을 변경하지 않고 일시적으로 스크립트 실행이 가능하도록 하도록 하는 방법이 있는데 Bypass 실행 정책을 이용하는 것입니다.

파워쉘 창에서 아래의 명령어와 같이 -ExecutionPolicy Bypass 옵션을 붙여 스크립트 파일이나 스크립트 명령어를 일시적으로 실행 정책을 무시하고 실행할 수 있습니다.

powershell -ExecutionPolicy Bypass -Command “스크립트 명령어”
powershell -ExecutionPolicy Bypass -File “스크립트 파일 경로\스크립트 파일 이름.ps1”

Bypass는 말그대로 실행 정책을 우회하기 때문에 모든 스크립트를 일시적으로 실행할 수 있으나 보안 상 위험하니 스크립트 파일이나 명령어 실행에 신중한 주의가 필요합니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다