[powershell] policy execution

2015. 11. 10. 13:37프로그래밍/Windows

728x90
728x90

원문 : https://talsu.net/?p=834


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로 인해 원하는 정책을 선택할 수 없을 때

http://absolute-sharepoint.com/2014/03/change-powershell-machinepolicy-execution-policy-windows-server-2012r2.html


728x90
반응형