Computer >> 컴퓨터 >  >> 문제 해결 >> Windows 오류

PowerShell '이 시스템에서 스크립트 실행이 비활성화되어 있습니다' 오류 해결 방법

이 오류는 사용자가 업무를 수행하거나 PC에서 발생하는 문제를 해결하기 위해 PowerShell에서 스크립트나 특정 명령을 실행하려고 할 때 나타납니다. 대부분의 시스템에서는 보안상의 이유로 스크립트 실행이 기본적으로 비활성화되어 있으며, 이를 허용하려면 별도의 설정 변경이 필요합니다.

PowerShell  이 시스템에서 스크립트 실행이 비활성화되어 있습니다  오류 해결 방법

물론 이 문제의 원인은 여러 가지가 있을 수 있습니다. 아래에서 소개하는 해결 방법들을 순서대로 따라 하면 대부분의 경우 문제를 해결할 수 있습니다. 그럼 시작해 보겠습니다!

'이 시스템에서 스크립트 실행이 비활성화되어 있습니다' 오류의 원인

이 문제의 원인은 크게 많지 않지만, 시스템마다 조금씩 다르게 나타날 수 있습니다. 주요 원인은 아래와 같으니 자신의 상황에 해당하는 항목이 있는지 확인해 보세요.

  • 기본적으로 스크립트 실행이 비활성화되어 있는 경우가 많으며, PowerShell에서 명령을 실행하거나 레지스트리를 수정하는 등의 방법으로 수동으로 활성화해야 합니다.
  • 더 상위 범위(스코프)에서 실행이 차단된 경우에는 로컬 그룹 정책 편집기(GPEdit)를 사용해야 할 수 있습니다. Windows 10의 설정 앱에서도 해당 옵션을 변경할 수 있습니다.
  • 명령을 실행할 때 PowerShell에 관리자 권한을 부여하지 않아 발생하는 경우도 있습니다.

해결 방법 1: 관리자 권한으로 PowerShell을 실행하고 명령어 입력하기

PowerShell에는 바로 이 문제를 처리하는 명령어가 있으며, 몇 분 안에 해결할 수 있습니다. PowerShell 창 내에서 스크립트 실행 정책을 직접 변경하는 방식입니다. 직접 따라 해 보세요!

  1. 시작 메뉴 버튼을 마우스 오른쪽 버튼으로 클릭하고, 컨텍스트 메뉴에서 'Windows PowerShell(관리자)' 옵션을 선택하여 PowerShell을 엽니다. Windows 7 사용자라면 검색을 통해 실행하면 됩니다.
PowerShell  이 시스템에서 스크립트 실행이 비활성화되어 있습니다  오류 해결 방법
  1. 해당 위치에 PowerShell 대신 명령 프롬프트가 표시된다면, 시작 메뉴나 검색창에서 PowerShell을 검색하세요. 이때 첫 번째 결과를 마우스 오른쪽 버튼으로 클릭하고 '관리자 권한으로 실행'을 선택해야 합니다.
  2. PowerShell 콘솔에 아래 명령어를 입력한 후 Enter 키를 누릅니다:
Set-ExecutionPolicy RemoteSigned
  1. 명령이 완료될 때까지 기다린 후, 프로세스가 성공적으로 완료되었다는 메시지가 표시되는지 확인합니다. 이 방법은 Windows 10을 포함한 모든 Windows 운영 체제에 적용할 수 있습니다.

해결 방법 2: 그룹 정책 편집하기

위 방법으로 해결되지 않는 경우, 특히 Windows 10과 같은 최신 버전의 Windows에서 흔히 나타나는 현상인데, 더 상위 범위의 정책을 변경해야 할 수 있습니다. 해결 방법 1의 명령을 실행한 후 일반적으로 표시되는 오류 메시지는 다음과 같습니다:

Set-ExecutionPolicy: Windows PowerShell updated your execution policy successfully, 
but the setting is overridden by a policy defined at a more specific scope. 
Due to the override, your shell will retain its current effective execution policy of...

이 문제를 해결하려면 그룹 정책 편집기를 열고 해당 설정을 즉시 변경해야 합니다.

  1. Windows 키 + R 키 조합(두 키를 동시에 누름)을 사용하여 실행 대화 상자를 엽니다. 실행 대화 상자에 'gpedit.msc'를 입력하고 확인 버튼을 눌러 로컬 그룹 정책 편집기를 실행합니다. Windows 10에서는 시작 메뉴에 '그룹 정책 편집'이라고 입력한 후 상위 결과를 클릭해도 됩니다.
PowerShell  이 시스템에서 스크립트 실행이 비활성화되어 있습니다  오류 해결 방법
  1. 로컬 그룹 정책 편집기의 왼쪽 탐색 창에서 '컴퓨터 구성' 아래의 '관리 템플릿'을 두 번 클릭하고, 'Windows 구성 요소 >> Windows PowerShell' 섹션으로 이동합니다.
  2. 'Windows PowerShell' 폴더를 두 번 클릭하여 선택한 후, 오른쪽 창의 내용을 확인합니다.
  3. '스크립트 실행 켜기(Turn on Script Execution)' 정책 옵션을 두 번 클릭하고, '사용(Enabled)' 옵션 옆의 라디오 버튼을 선택합니다. 실행 정책 드롭다운 메뉴에서 '모든 스크립트 허용'을 선택한 후, 종료하기 전에 변경 사항을 적용합니다. 변경 사항은 컴퓨터를 다시 시작해야 적용됩니다.
PowerShell  이 시스템에서 스크립트 실행이 비활성화되어 있습니다  오류 해결 방법
  1. 마지막으로 컴퓨터를 재부팅하여 변경 사항을 저장한 후, 오류가 여전히 발생하는지 확인합니다.

해결 방법 3: Windows 10 설정에서 변경하기

Windows 10 사용자는 설정 앱의 '개발자용' 섹션에서 스크립트 설정을 변경할 수도 있습니다. 일반적으로 위의 방법들로 문제가 해결되지 않았을 때 시도해 볼 만한 방법입니다. 참고로 이 방법은 Windows 10 사용자에게만 적용됩니다.

  1. Windows 키 + I 키 조합을 눌러 Windows 10 PC에서 설정을 엽니다. 또는 작업 표시줄의 검색창에서 '설정'을 검색하거나, 시작 메뉴 버튼 위의 톱니바퀴 아이콘을 클릭해도 됩니다.
  2. 설정 앱에서 '업데이트 및 보안' 항목을 찾아 한 번 클릭하여 엽니다.
PowerShell  이 시스템에서 스크립트 실행이 비활성화되어 있습니다  오류 해결 방법
  1. '개발자용' 탭으로 이동한 후, PowerShell 섹션에서 '로컬 PowerShell 스크립트를 서명 없이 실행할 수 있도록 실행 정책 변경. 원격 스크립트는 서명 필요'라는 옵션을 찾습니다.
  2. 해당 옵션 옆의 확인란을 클릭하여 활성화한 후, 바로 아래의 '적용' 버튼을 클릭합니다.
PowerShell  이 시스템에서 스크립트 실행이 비활성화되어 있습니다  오류 해결 방법
  1. 컴퓨터를 즉시 다시 시작한 후, PowerShell에서 스크립트를 실행해 보고 '이 시스템에서 스크립트 실행이 비활성화되어 있습니다' 오류가 여전히 나타나는지 확인합니다.

해결 방법 4: 레지스트리를 통해 해결하기

위의 방법들로도 문제가 해결되지 않았다면, 마지막으로 남은 방법은 레지스트리 편집기를 통해 가장 상위 범위에서 설정을 수동으로 변경하는 것입니다. 이 방법은 비교적 간단하지만, 레지스트리를 잘못 수정하면 시스템에 문제가 생길 수 있으므로 주의해서 진행해야 합니다.

  1. 검색창, 시작 메뉴 또는 Windows 키 + R 키 조합으로 열 수 있는 실행 대화 상자에 'regedit'를 입력하여 레지스트리 편집기 창을 엽니다. 왼쪽 창에서 아래 경로의 키로 이동합니다:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell
PowerShell  이 시스템에서 스크립트 실행이 비활성화되어 있습니다  오류 해결 방법
  1. 해당 키를 클릭한 후, 창 오른쪽에서 'ExecutionPolicy'라는 문자열 항목을 찾습니다. 해당 항목이 있다면 마우스 오른쪽 버튼으로 클릭하고 컨텍스트 메뉴에서 '수정(Modify)' 옵션을 선택합니다.
  2. 편집 창의 '값 데이터' 섹션에서 값을 'Unrestricted' 또는 'RemoteSigned'로 변경하고 변경 사항을 적용합니다. 진행 과정에서 나타나는 보안 경고 대화 상자가 있으면 확인합니다.PowerShell  이 시스템에서 스크립트 실행이 비활성화되어 있습니다  오류 해결 방법
  3. 이제 시작 메뉴 >> 전원 버튼 >> 다시 시작을 클릭하여 컴퓨터를 수동으로 재부팅한 후, 문제가 해결되었는지 확인합니다.