Power Shell
시작 프로그램에 바로 파워쉘 등록하는 방법
test.ps1이라는 파일을 시작프로그램에 등록하고 싶음test.bat파일 작성powershell.exe -Noprofile -Noninteractive -Nologo -ExecutionPolicy Bypass "C:\Users\sch\Documents\test.ps1"C:\Users\sch\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup에 해당 배치 파일을 배치함배치 실행한 콘솔에 대해 최소화나 기타 설정을 하고 싶다면 바로가기를 만들어서 속성에서 변경할 것
실행정책
Set-ExecutionPolicy : Windows PowerShell updated your execution policy successfully, but the setting is overridden by
a policy defined at a more specific scope. Due to the override, your shell will retain its current effective
execution policy of RemoteSigned. Type "Get-ExecutionPolicy -List" to view your execution policy settings. For more
information please see "Get-Help Set-ExecutionPolicy".
At line:1 char:1
+ Set-ExecutionPolicy -ExecutionPolicy Restricted -Scope LocalMachine
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : PermissionDenied: (:) [Set-ExecutionPolicy], SecurityException
+ FullyQualifiedErrorId : ExecutionPolicyOverride,Microsoft.PowerShell.Commands.SetExecutionPolicyCommand
파워쉘을 실행시킬 때 이러한 메시지가 발생하는 경우가 있는데 이런 경우 각 Scope에 맞춰서 정책을 변경 해줘야함
| Scope | Description |
|---|---|
| MachinePolicy | GPO의 컴퓨터 정책을 통해 설정 |
| UserPolicy | GPO의 사용자 정책을 통해 설정 |
| Process | 현재 실행 중인 파워쉘 세션에만 적용 |
| CurrentUser | 현재 사용자에 적용 |
| LocalMachine | 로컬 컴퓨터에 적용 |
| ExecutionPolicy | Description |
|---|---|
| Undefined | ExecutionPolicy를 설정하지 않았다는 의미. 기본 정책인 Restricted로 작동 |
| Restricted | Windows 10의 ExecutionPolicy 기본 값. 기본적으로 스크립트 파일이 실행되지 않으나 Microsoft에서 만든 일부 스크립트 파일들은 실행이 가능한 경우가 있음 |
| Unrestricted | Microsoft에서도 권장하지 않는 옵션으로 서명되지 않은 스크립트를 포함한 모든 스크립트를 실행할 수 있음 |
| AllSigned | 신뢰할 수 있는 인증기관이 서명한 스크립트만 실행 가능함. 로컬 컴퓨터에서 작성된 스크립트라 하더라도 신뢰할 수 있는 인증기관이 서명하지 않았다면 실행이 불가능 |
| Bypass | 다른 어플리케이션 내에 파워쉘 스크립트가 내장되거나 별도의 자체 보안 설정을 갖추었을 때 사용함. 차단되거나 별다른 경고 없이 실행 가능 |
| RemoteSigned | Microsoft에서 권장하는 옵션으로 Windows Server 2012 R2 이후의 기본 값. 로컬 컴퓨터에서 작성된 모든 스크립트는 실행이 가능하고 인터넷에서 다운로드한 스크립트는 인증기관이 발행한 코드로 서명되어야만 실행이 가능 |
실행정책 변경
# Scope를 지정하지 않으면 LocalMachine에 적용됨
# MachinePolicy, UserPolicy는 그룹정책GPO로만 변경이 가능함
Set-ExecutionPolicy RemoteSigned
# Scope 지정
Set-ExecutionPolicy -scope CurrentUser RemoteSigned
# 파워쉘 실행시 지정
powershell.exe -ExecutionPolicy Bypass