콘텐츠
PowerShell 스크립트 실행 권한
PowerShell 을 이용해 .ps1 파일로 스크립트를 개발하고 실행을 해보니 권한 문제로 인해 정상적으로 실행 되지 않았다.
이를 실행 하려면 스크립트를 실행 할 수 있는 권한으로 변경을 해줘야 한다.
현재 실행 권한 확인하기
현재 시스템의 실행 권한은 다음 명령어를 통해 PowerShell 내에서 확인이 가능하다. 명령어를 실행하면 대부분 Restricted 가 기본적으로 출력 된다.
나의 경우 이미 RemoteSigned 로 변경하여 다음과 같이 출력 되었다.
Get-ExecutionPolicy
PowerShell실행 정책 목록:
- Restricted: 기본 정책, 스크립트 실행이 금지
- AllSigned: 오직 신뢰된 발행자에 의해 서명된 스크립트만 실행
- RemoteSigned: 인터넷에서 다운로드한 스크립트는 서명되어야 하며, 로컬 스크립트는 서명 없이 실행
- Unrestricted: 어떤 스크립트도 서명 없이 실행하고 인터넷에서 다운로드한 스크립트는 사용자에게 경고를 표시
기본적으로 Restricted 가 설정 되어 있는 이유
기본 정책이 스크립트 실행이 금지 된 이유는 보안 때문이다. PowerShell 이 시스템과 네트워크 등을 건드릴 수 있기 때문에 인터넷에서 다운로드한 스크립트를 함부로 사용되지 못하도록 하기 위해 금지가 기본적으로 설정되어 있다.
이는 내가 확실히 확인했거나 신뢰가 높은 스크립트가 아닌 이상 함부로 실행하지 않아야 한다는 의미도 된다. 인터넷에 여러 편리한 자동화 스크립트가 존재 하겠지만, 늘 보안을 고려해서 무분별하게 사용하지 않도록 주의를 기울여야 한다.
실행 권한 변경
스크립트를 사용하고 싶어 변경하고 싶다면 대부분 RemoteSigned 로 변경하면 된다. 변경은 다음 명령어로 가능하다.
참고로 권한을 변경하려면 PowerShell 을 관리자 권한으로 실행해야 한다.
Set-ExecutionPolicy 원하는 실행 정책(예: RemoteSigned)
PowerShell명령어 입력 시 “실행 규칙 변경” 관련 메세지가 출력 되며 변경을 정말로 수행할 지를 묻는다. Y를 눌러 엔터를 누르면 정책이 변경 된다.