Ⅰ. 증상
Windows PowerShell 스크립트를 작성하여 실행하려 할 때 다음과 같은 에러가 발생하면서 스크립트가 실행되지 않습니다.
.\test.ps1 : 이 시스템에서 스크립트를 실행할 수 없으므로 C:\Users\K\Desktop\test.ps1 파일을 로드할 수 없습니다. 자세한 내용은 about_Execution_Policies(https://go.microsoft.com/fwlink/?LinkID=135170)를 참조하십시오. |
Ⅱ. 원인
Windows 계열에서는 무분별한 스크립트 실행에 대한 권한이 막혀있기 때문에 "Ⅲ. 해결방법"에 따라 조치를 하면 됩니다.
PowerShell의 "ExecutionPolicy"는 PowerShell 스크립트 및 실행 파일을 실행할 때 적용되는 보안 정책입니다. 이 정책은 시스템 관리자가 PowerShell을 사용하는 환경에서 보안을 유지하고 악의적인 코드 실행을 방지하기 위해 사용됩니다.
실행 정책은 다음과 같은 네 가지 레벨로 설정될 수 있습니다:
ⅰ) Restricted: 기본적으로 적용되는 정책으로, 스크립트를 실행할 수 없습니다. 오직 PowerShell 콘솔에서 직접 명령을 입력하는 것만 가능합니다.
ⅱ) AllSigned: 모든 스크립트와 실행 파일은 신뢰할 수 있는 배포자에 의해 디지털 서명되어야 합니다. 인터넷에서 다운로드한 스크립트는 실행되지 않습니다.
ⅲ) RemoteSigned: 로컬에서 작성한 스크립트는 디지털 서명되지 않아도 실행됩니다. 하지만 인터넷을 통해 다운로드한 스크립트는 반드시 디지털 서명되어야 합니다.
ⅳ) Unrestricted: 모든 스크립트와 실행 파일이 실행됩니다. 이 모드에서는 스크립트의 디지털 서명 유무나 원본 출처에 관계 없이 모든 스크립트가 실행됩니다. 이는 보안을 위해 권장되는 설정이 아닙니다.
ⅴ) Bypass: 실행 정책을 우회합니다. PowerShell 스크립트 및 실행 파일을 실행할 때 어떠한 실행 정책 제한도 적용하지 않습니다.
Ⅲ. 해결 방법
ⅰ) PowerShell을 관리자 권한으로 실행
ⅱ) ExecutionPolicy 명령어를 사용하여 다음과 같이 실행
명령어 예시) 1) 이 세션에서만 실행하는 방법 set-ExecutionPolicy RemoteSigned -scope Process 2) 로컬에서 작성된 스크립트를 자유롭게 실행할 수 있지만, 인터넷을 통해 다운로드된 스크립트는 디지털 서명을 확인하고 승인된 스크립트만 실행할 것 Set-ExecutionPolicy -ExecutionPolicy RemoteSigned혹은AllSigned -Scope LocalMachine 3) 실행 정책에 관계없이 모든 스크립트가 허용하는 방법 set-ExecutionPolicy Bypass |
ⅲ) 명령어 실행 이후 ps1 스크립트를 실행해보면 정상적으로 실행됩니다
'시스템(Windows)' 카테고리의 다른 글
키보드 한/영 버튼으로 전환이 안될 때에 대응 방법에 대해 알아보겠습니다. (0) | 2024.05.21 |
---|---|
Windows Server SMTP 서버 구성에 대해 알아보겠습니다. (0) | 2024.05.15 |
Windows 패스워드 설정 관련 정책 및 우선 설정되는 것에 대해 알아보겠습니다. (0) | 2024.04.09 |
WSUS 에 대해 알아보겠습니다. (0) | 2024.04.08 |
Curl 에 대해 알아보곘습니다. (0) | 2024.03.06 |