Windows PowerShell 실행 정책에 대한 사용자 기본 설정을 변경합니다.

구문

Set-ExecutionPolicy [-ExecutionPolicy] {<Unrestricted> | <RemoteSigned> | <AllSigned> | <Restricted> | <Default> | <Bypass> | <Undefined>} [[-Scope] {<Process> | <CurrentUser> | <LocalMachine> | <UserPolicy> | <MachinePolicy>}] [-Force] [-Confirm] [-WhatIf] [<CommonParameters>]

설명

Set-ExecutionPolicy는 Windows PowerShell 실행 정책에 대한 사용자 기본 설정을 변경합니다.

Windows Vista, Windows Server 2008 및 Windows 최신 버전에서 이 명령을 실행하려면 컴퓨터의 Administrators 그룹 구성원인 경우에도 "관리자 권한으로 실행" 옵션을 사용하여 Windows PowerShell을 시작해야 합니다.

실행 정책은 Windows PowerShell 보안 전략의 일부입니다. 실행 정책에서는 구성 파일(Windows PowerShell 사용자 프로필 포함)을 로드하고 스크립트를 실행할 수 있는지 여부 및 실행하기 전에 디지털 서명해야 하는 스크립트(있을 경우)를 결정합니다.

자세한 내용은 about_Execution_Policies를 참조하십시오.

매개 변수

-ExecutionPolicy <ExecutionPolicy>

셸에 대한 새 실행 정책을 지정합니다. 매개 변수 이름("Name")은 선택 사항입니다.

유효한 값은 다음과 같습니다.

-- Restricted: 구성 파일을 로드하거나 스크립트를 실행하지 않습니다. 기본값입니다.

-- AllSigned: 로컬 컴퓨터에 작성하는 스크립트를 포함하여 모든 스크립트 및 구성 파일에 신뢰된 게시자가 서명해야 합니다.

-- RemoteSigned: 인터넷에서 다운로드한 모든 스크립트 및 구성 파일에 대해 신뢰된 게시자가 서명해야 합니다.

-- Unrestricted: 모든 구성 파일을 로드하고 모든 스크립트를 실행합니다. 인터넷에서 다운로드한 서명되지 않은 스크립트를 실행할 경우 실행하기 전에 사용 권한을 묻는 메시지가 표시됩니다.

-- Bypass: 아무 것도 차단되지 않으며 경고나 메시지가 표시되지 않습니다.

-- Undefined: 현재 할당된 실행 정책을 현재 범위에서 제거합니다. 이 매개 변수는 그룹 정책 범위에 설정된 실행 정책을 제거하지 않습니다.

필수 여부

true

위치

1

기본값

파이프라인 입력 적용 여부

true (ByValue)

와일드카드 문자 적용 여부

false

-Force

모든 확인 메시지를 표시하지 않습니다. 기본적으로 Set-ExecutionPolicy는 실행 정책을 변경할 때마다 경고를 표시합니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-Scope <ExecutionPolicyScope>

실행 정책의 범위를 지정합니다. 기본값은 LocalMachine입니다.

유효한 값은 다음과 같습니다.

-- Process: 실행 정책이 현재 Windows PowerShell 프로세스에만 영향을 줍니다.

-- CurrentUser: 실행 정책이 현재 사용자에게만 영향을 줍니다.

-- LocalMachine: 실행 정책이 모든 컴퓨터 사용자에게 영향을 줍니다.

특정 범위에서 실행 정책을 제거하려면 해당 범위에 대한 실행 정책을 Undefined로 설정합니다.

필수 여부

false

위치

2

기본값

LocalMachine

파이프라인 입력 적용 여부

true (ByPropertyName)

와일드카드 문자 적용 여부

false

-Confirm

명령을 실행하기 전에 확인 메시지를 표시합니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-WhatIf

명령을 실제로 실행하지 않고도 명령이 실행될 경우 발생할 수 있는 현상을 설명합니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

<CommonParameters>

이 cmdlet은 -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, -OutVariable 등의 일반 매개 변수를 지원합니다. 자세한 내용은 about_Commonparameters.

입력 및 출력

입력 유형은 cmdlet으로 파이프할 수 있는 개체의 유형입니다. 반환 유형은 cmdlet에서 반환되는 개체의 유형입니다.

입력

Microsoft.PowerShell.ExecutionPolicy, System.String

실행 정책 개체나 실행 정책의 이름이 포함된 문자열을 Set-ExecutionPolicy로 파이프할 수 있습니다.

출력

없음

이 cmdlet은 어떠한 출력도 반환하지 않습니다.

참고

Set-ExecutionPolicy를 사용하는 경우 새 사용자 기본 설정이 레지스트리에 기록되고 사용자가 변경할 때까지 변경되지 않은 상태로 유지됩니다.

그러나 컴퓨터 또는 사용자에 대해 "스크립트 실행 설정" 그룹 정책을 사용할 경우 사용자 기본 설정이 레지스트리에 기록되지만 효력이 없으며 Windows PowerShell에서 해당 충돌을 설명하는 메시지를 표시합니다. 사용자 기본 설정이 정책보다 더 제한적인 경우에도 Set-ExecutionPolicy를 사용하여 그룹 정책을 재정의할 수 없습니다.

예 1

C:\PS>set-executionpolicy remotesigned

설명
-----------
이 명령은 셸 실행 정책에 대한 사용자 기본 설정을 RemoteSigned로 설정합니다.






예 2

C:\PS>Set-ExecutionPolicy Restricted

Set-ExecutionPolicy : Windows PowerShell updated your local preference successfully, but the setting is overridden by the group policy applied to your system. Due to the override, your shell will retain its current effective execution policy of "AllSigned". Contact your group policy administrator for more information.
At line:1 char:20
+ set-executionpolicy  <<<< restricted

설명
-----------
이 명령은 셸에 대한 실행 정책을 "Restricted"로 설정합니다. 그러나 "Restricted" 설정은 레지스트리에 기록되지만 그룹 정책과 충돌하기 때문에 정책보다 더 제한적이더라도 효력이 없습니다.






예 3

C:\PS>invoke-command -computername Server01 -scriptblock {get-executionpolicy} | set-executionpolicy -force

설명
-----------
이 명령은 원격 컴퓨터에서 실행 정책을 가져와 로컬 컴퓨터에 적용합니다.

이 명령은 Invoke-Command cmdlet을 사용하여 명령을 원격 컴퓨터로 보냅니다. ExecutionPolicy(Microsoft.PowerShell.ExecutionPolicy) 개체를 Set-ExecutionPolicy로 파이프할 수 있으므로 Set-ExecutionPolicy 명령에는 ExecutionPolicy 매개 변수가 필요하지 않습니다.

이 명령에는 사용자 확인 메시지를 표시하지 않는 Force 매개 변수가 없습니다.






예 4

C:\PS>set-executionpolicy -scope CurrentUser -executionPolicy AllSigned -force

C:\PS> get-executionpolicy -list

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

C:\PS> get-executionpolicy
AllSigned

설명
-----------
이 예에서는 특정 범위에 대한 실행 정책을 설정하는 방법을 보여 줍니다.

첫 번째 명령은 Set-ExecutionPolicy cmdlet을 사용하여 현재 사용자에 대해 AllSigned 실행 정책을 설정합니다. 이 명령은 사용자 확인 메시지를 표시하지 않는 Force 매개 변수를 사용합니다.

두 번째 명령은 Get-ExecutionPolicy의 List 매개 변수를 사용하여 각 범위에 설정된 실행 정책을 가져옵니다. 결과에는 현재 사용자에 대해 설정된 실행 정책이 컴퓨터의 모든 사용자에 대해 설정된 실행 정책과 다르다고 표시됩니다. 

세 번째 명령은 매개 변수 없이 Get-ExecutionPolicy cmdlet을 사용하여 로컬 컴퓨터의 현재 사용자에 유효한 실행 정책을 가져옵니다. 결과에는 현재 사용자에 대해 설정된 실행 정책이 모든 사용자에 대해 설정된 실행 정책보다 우선한다고 표시됩니다.






예 5

C:\PS>set-executionpolicy -scope CurrentUser -executionPolicy Undefined

설명
-----------
이 명령은 실행 정책 값 Undefined를 사용하여 현재 사용자 범위에 대해 설정된 실행 정책을 효과적으로 제거합니다. 따라서 그룹 정책 또는 LocalMachine(모든 사용자) 범위에 설정된 실행 정책이 적용됩니다.

모든 범위의 실행 정책을 Undefined로 설정하고 그룹 정책이 설정되어 있지 않으면 기본 실행 정책인 Restricted가 컴퓨터의 모든 사용자에 대해 적용됩니다.






참고 항목




목차