2015. 11. 10. 13:37ㆍ프로그래밍/Windows
Windows Powershell 에서 스크립트를 실행하기 위해서는 ExecutionPolicy를 조절 해 줘야 한다.
그렇다면 Execution Policy는 무엇인가? 말 그대로 Powershell 의 실행 정책인데 이를 조절 하여 스크립트를 실행하는 조건을 정할 수 있다. 이 설정의 기본값이 스크립트를 수행 할 수 없도록 되어 있다.
Execution Policy는 보안과는 조금 다른 개념이다. 자세한 설명은 Powershell 에 내장되어 있으므로 다음 명령으로 조회 해 보자.
1 | Get-Help about_execution_policies | cs |
아래는 man about_execution_policies 결과 중 실행 정책 관련 부분 이다.
Windows PowerShell 실행 정책
Windows PowerShell 실행 정책은 다음과 같습니다.
기본 정책은 “Restricted”입니다.
Restricted
– 기본 실행 정책입니다.
– 개별 명령을 허용하지만 스크립트를 실행하지 않습니다.
– 서식 지정 및 구성 파일(.ps1xml), 모듈 스크립트 파일(.psm1), Windows PowerShell 프로필(.ps1) 등의
모든 스크립트 파일을 실행할 수 없습니다.
AllSigned
– 스크립트를 실행할 수 있습니다.
– 로컬 컴퓨터에 작성하는 스크립트를 포함하여 모든 스크립트 및 구성 파일에 신뢰된 게시자가 서명해야 합니다.
– 신뢰된 게시자나 신뢰되지 않은 게시자로 아직 분류하지 않은 게시자의 스크립트를 실행하기 전에 메시지를 표시합니다.
– 인터넷 이외의 다른 소스에서 가져온 서명되지 않은 스크립트를 실행하거나 서명되었지만 악의적인 스크립트를 실행할 위험이 있습니다.
RemoteSigned
– 스크립트를 실행할 수 있습니다.
– 전자 메일과 인스턴트 메시징 프로그램을 포함하여 인터넷에서 다운로드하는 스크립트와 구성 파일에는 신뢰된
게시자의 디지털 서명이 필요합니다.
– 이미 실행한 스크립트와 로컬 컴퓨터에 작성한(인터넷에서 다운로드하지 않음) 스크립트에는 디지털 서명이 필요 없습니다.
– 서명되었지만 악의적인 스크립트를 실행할 위험이 있습니다.
Unrestricted
– 서명되지 않은 스크립트를 실행할 수 있습니다. 이 경우 악의적인 스크립트를 실행할 위험이 있습니다.
– 인터넷에서 다운로드한 스크립트와 구성 파일을 실행하기 전에 사용자에게 경고합니다.
Bypass
– 아무 것도 차단되지 않으며 경고나 메시지가 표시되지 않습니다.
– 이 실행 정책은 Windows PowerShell 스크립트가 대규모 응용 프로그램에 기본 제공되는 구성 또는
고유의 보안 모델을 가진 프로그램이 Windows PowerShell을 기초로 하는 구성을 설계되었습니다.
Undefined
– 현재 범위에 설정된 실행 정책이 없습니다.
– 모든 범위의 실행 정책이 Undefined인 경우 적용되는 실행 정책은 기본 실행 정책인 Restricted입니다.
참고: UNC(범용 명명 규칙) 경로를 인터넷 경로와 구별하지 않는 시스템에서는 UNC 경로로 식별되는스크립트를 RemoteSigned 실행 정책으로 실행하는 것이 허용되지 않을 수 있습니다.
RemoteSigned 정도가 적당해 보인다. (개인적으로는 unrestricted를 사용)
자신에게 알맞은 Policy를 선택 했으면 Set-ExecutionPolicy 명령으로 설정한다.
PowerShell
1 | Set-ExecutionPolicy RemoteSigned | cs |
명령을 수행하면 다음과 같은 질문을 받는데 Y를 입력하여 Confirm 한다.
실행 규칙 변경
실행 정책은 신뢰하지 않는 스크립트로부터 사용자를 보호해 줍니다. 실행 정책을 변경하면 about_Execution_Policies 도움말
항목에 설명된 보안 위험에 노출될 수 있습니다. 실행 정책을 변경하시겠습니까?
[Y] 예(Y) [N] 아니요(N) [S] 일시 중단(S) [?] 도움말 (기본값은 "Y"임): Y
혹은 -Force Parameter를 이용하여 질문 없이 수행 할 수 있다.
1 | Set-ExecutionPolicy RemoteSigned -Force | cs |
Machine Policy로 인해 원하는 정책을 선택할 수 없을 때
'프로그래밍 > Windows' 카테고리의 다른 글
[windows] Hyper-V 관리자 설치 및 기능 켜기 (5) | 2016.02.22 |
---|---|
[CMD] robocopy로 특정 파일 하위 폴더 유지하고 복사하기(+ 특정 폴더 제외) (5) | 2016.02.18 |
[CMD, 바이러스?] USB 내용물이 갑자기 바로가기 파일로 바뀌었을 때 (4) | 2016.01.27 |
[CMD] choice를 이용한 다중 실행 배치파일 만들기 (3) | 2016.01.23 |
[CMD] CMD에서 드라이브 변경하는 명령어 (2) | 2015.12.10 |
[powershell] check_exit_code (0) | 2015.11.12 |
[Windows] UAC (0) | 2015.11.03 |