이 시스템에서 스크립트를 실행할 수 없으므로 D:\wsl2\wsl.ps1 파일을 로드할 수 없습니다.

 

이 시스템에서 스크립트를 실행할 수 없으므로 ~.ps1 파일을 로드할 수 없습니다. 자세한 내용은 about_Execution_Po licies(https://go.microsoft.com/fwlink/?LinkID=135170)를 참조하십시오. + CategoryInfo : 보안 오류: (:) [], ParentContainsErrorRecordException + FullyQualifiedErrorId : UnauthorizedAccess

WSL2 개발환경에 이슈가 있어 스크립트를 작성 후 실행하려 하자 위와 같은 에러가 발생하였습니다. 

원인은, 스크립트 실행 권한이 제한되어 있어 발생하였습니다.

해결하기 위해서는 권한을 부여해야 하는데요, 어떻게 설정하는지 알려드리겠습니다.

 

1. Windows PowerShell 앱을 관리자 권한으로 실행

  작업표시줄 검색에서 powershell 을 검색하여 '관리자로 실행'을 눌러줍니다.

 

2. get-help Set-ExecutionPolicy 

관련 도움말 확인하기 위해 아래 명령어 입력 후 엔터 

최신 도움말 파일 다운로드 여부를 물어보면 Y를 선택하고 엔터를 누르면 됩니다.

get-help Set-ExecutionPolicy

Restricted : PowerShell의 실행 권한 정책 중 기본적으로 적용되어있는 옵션. ps1 스크립트 파일을 로드하여 실행할 수 없는 정책

AllSigned : 신뢰된 배포자에 의해 서명된 스크립트만 실행 할 수 있는 정책

RemoteSigned : 로컬 컴튜퍼에서 본인이 생성한 스크립트만 실행 가능 또는 인터넷에서 다운로드 받은 스크립트는 신뢰된 배포자에 의해 서명된 것만 실행 가능한 정책

Unrestricted : 제한 없이 모든 스크립트 실행 가능한 정책

ByPass : 어떤 것도 차단하지 않고 경고 없이 실행 가능한 정책

Undefined : 정책 적용 안함

 

3. Set-ExecutionPolicy 명령어로 권한 정책 설정

저 같은 경우는 위의 여러 권한 정책 중, RemoteSigned 권한 정책으로 설정하였습니다.

 Set-ExecutionPolicy RemoteSigned

위 명령어 실행 후, 아래와 같이 변경하시겠습니까? 물어보면 Y를 입력 후 엔터를 누르면 반영이 됩니다.

그리고, 다시 에러 발생했던 스크립트를 실행하면, 정상적으로 실행되는 것을 볼 수 있습니다.

 

위와 같은 PowerShell의 권한 정책으로 에러가 발생할 경우 참고하셔서 해결하시길 바랍니다.