본문 바로가기

OS/Windows

PowerShell 실행 정책(about_Execution_Policies)

반응형

악성 스크립트 실행 방지를 위한 PowerShell 실행을 제어하는 정책

1. scope 별 실행정책 리스트

 - 우선 순위별

PS Client> get-executionpolicy -list

        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser       Undefined
 LocalMachine       Undefined

 - MachinePolicy : 모든 사용자에 재한 그룹정책

 - UserPolicy : 현 사용자에 대한 그룹 정책

 - Process : 떠 있는 PowerShell 세션에 대한 정책. 레지스트리에 저장 되지 않고 환경변수로 등록되어 세션이 종료되면 같이 소멸

 - CurrentUser : 현재 사용자에 대한 정책. HKEY_CURRENT_USER 레지스트리 하위 키에 저장.

 - LocalMachine : 모든 사용자대한 정책. HKEY_LOCAL_MACHINE 레지스트리 하위 키에 저장

 

2. ExecutionPolicy 종류

 - Allsigned : 신뢰 서명이 있는 모든 스크립트를 실행 하며 신뢰할 수 없는 스크립트는 경고.

 - Bypass : 모든 스크립트 실행

 - Remotesigned :  서버 default 정책. 원격 신뢰 서명, 로컬 스크립트 실행. 경고를 무시하고 신뢰할 수 없는 스크립트를 다운 받은 경우 실행 가능.

PS Server> Get-ExecutionPolicy
RemoteSigned

 - Restricted : 클라이언트 default 정책. 개별 명령을 제외한 모든 스크립트 차단.

PS Client> get-executionpolicy
Restricted

 - Undefined : 정책 미설정. default 정책이 적용.

 - Unrestricted : 신뢰할 수 없는 스크립트 실행. 로컬 인트라넷 영역이 아닌 스크립트 실행 경고

 

3. 실행 정책 변경

 - 형식

Set-ExecutionPolicy -ExecutionPolicy <PolicyName> -Scope <scope>

 - 예제 : LocalMachine scope을 Allsigned로 변경

# 현재 실행 정책
PS C:\Users\ad.test\Desktop> get-executionpolicy -list

        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser       Undefined
 LocalMachine       Undefined

PS C:\Users\ad.test\Desktop> get-executionpolicy
Restricted


# 정책 변경
PS C:\Users\ad.test\Desktop> set-executionpolicy -executionpolicy allsigned -scope localmachine

실행 규칙 변경
실행 정책은 신뢰하지 않는 스크립트로부터 사용자를 보호합니다. 실행 정책을 변경하면 about_Execution_Policies 도움말
항목(https://go.microsoft.com/fwlink/?LinkID=135170)에 설명된 보안 위험에 노출될 수 있습니다. 실행 정책을
변경하시겠습니까?
[Y] 예(Y)  [A] 모두 예(A)  [N] 아니요(N)  [L] 모두 아니요(L)  [S] 일시 중단(S)  [?] 도움말 (기본값은 "N"): y

# 변경 된 정책
PS C:\Users\ad.test\Desktop> get-executionpolicy -list

        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser       Undefined
 LocalMachine       AllSigned

PS C:\Users\ad.test\Desktop> get-executionpolicy
AllSigned

 

4. 실행 정책 제거

 - 형식

Set-ExecutionPolicy -ExecutionPolicy Undefined -Scope <scope>
반응형