반응형

파워쉘 스크립트 실행 오류 (PSSecurityException: UnauthorizedAccess)


Windows에서 파워쉘 스크립트를 실행하려고 하면 다음과 같은 오류 메시지가 나타난다.

PS C:\> .\script.ps1
.\script.ps1 : 이 시스템에서 스크립트를 실행할 수 없으므로 C:\script.ps1 파일을 로드할 수 없습니다. 자세한 내용은 about _Execution_Policies(https://go.microsoft.com/fwlink/?LinkID=135170)를 참조하십시오.
위치 줄:1 문자:1
+ .\script.ps1
+ ~~~~~~~~~~~~
    + CategoryInfo : 보안 오류: (:) [], PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess

스크립트 실행 오류(PSSecurityException: UnauthorizedAccess)가 발생하는 원인과 해결 방법에 대해 알아보자.

728x90

 

원인과 해결 방법


파워쉘 스크립트 실행 오류가 발생하는 원인은 서명되지 않은 파워쉘 스크립트를 실행하려고 했기 때문이다.

서명되지 않은 파워쉘 스크립트를 실행하려면 실행 규칙 정책 변경해주면 된다.

실행 규칙 정책 조회

먼저 ExecutionPolicy 명령어로 현재 실행 규칙 정책을 조회해보자.

PS C:\> ExecutionPolicy
Restricted

Restricted(제한됨) 정책으로 확인된다.

 

실행 규칙 정책 변경

그럼 이제 서명되지 않은 파워쉘 스크립트를 실행하기 위해 실행 규칙을 변경해보자.

파워쉘을 관리자 권한으로 실행해야만 Set-ExecutionPolicy 명령어로 실행 규칙 정책을 변경할 수 있다.

실행 정책 변경 확인 질문에는 '[A] 모두 예(A)'를 선택하자.

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

다시 확인해보면 RemoteSigned 정책으로 확인된다.

이제 스트립트를 정상적으로 실행할 수 있다.

PS C:\> .\script.ps1
Success.

각각의 실행 정책(ExecutionPolicy)이 의미하는 내용은 다음과 같다.

ExecutionPolicy Description
AllSigned Requires that all scripts and configuration files are signed by a trusted publisher, including scripts written on the local computer.
Bypass Nothing is blocked and there are no warnings or prompts.
Default Sets the default execution policy. Restricted for Windows clients or RemoteSigned for Windows servers.
RemoteSigned Requires that all scripts and configuration files downloaded from the Internet are signed by a trusted publisher. The default execution policy for Windows server computers.
publisher The default execution policy for Windows server computers.
Restricted Doesn't load configuration files or run scripts. The default execution policy Windows client computers.
Undefined No execution policy is set for the scope. Removes an assigned execution policy from a scope that is not set by a Group Policy. If the execution policy in all scopes is Undefined, the effective execution policy is Restricted.
Unrestricted Beginning in PowerShell 6.0, this is the default execution policy for non-Windows computers and can't be changed. Loads all configuration files and runs all scripts. If you run an unsigned script that was downloaded from the internet, you're prompted for permission before it runs.

 

반응형

+ Recent posts