Windows PowerShell에서 스크립트 실행 및 실행 정책 설정

완료됨

Windows PowerShell 스크립트를 수정하거나 직접 만들기 시작하기 전에 Windows PowerShell 스크립트를 실행하는 방법을 알고 있어야 합니다. 실행 파일을 두 번 클릭하거나 실행 파일을 선택한 후 Enter 키를 선택하여 실행한다는 생각에 익숙할 수 있지만 Windows PowerShell 스크립트에서는 해당 과정이 작동하지 않습니다.

많은 스크립팅 언어의 문제점 중 하나는 너무 쉽게 실수로 스크립트를 실행할 수 있다는 것입니다. 사용자가 스크립트를 두 번 클릭하거나 해당 스크립트를 선택한 후 Enter 키를 선택하여 실수로 스크립트를 실행할 수 있습니다. 이 작업은 파일 확장명이 숨겨져 있고 맬웨어가 이메일 첨부 파일로 포함되어 있는 경우 특히 문제가 됩니다. 예를 들어 receipt.txt.vbs라는 첨부 파일은 receipt.txt로 표시되므로 사용자가 단순한 텍스트 파일이라고 생각하여 실수로 실행하게 됩니다. 이 설정은 스크립트를 실행하는 데 필요한 작업이기 때문에 Windows PowerShell 스크립트에서 문제가 되지 않습니다.

파일 탐색기와 통합

Windows PowerShell 스크립트의 보안을 강화하기 위해 .ps1 파일 확장명은 메모장과 연결됩니다. 따라서 .ps1 파일을 두 번 클릭하거나, 이 파일을 선택하고 Enter 키를 선택하면 메모장에서 열립니다. 이 설정은 사용자가 스크립트를 두 번 클릭하거나, 스크립트를 선택하고 Enter 키를 선택하여 Windows PowerShell 스크립트를 실행하도록 속일 수 없다는 것을 의미합니다.

Windows PowerShell 스크립트를 마우스 오른쪽 단추로 클릭하거나 상황에 맞는 메뉴를 활성화하면 다음 세 가지 옵션이 있습니다.

  • 열기. 이 옵션은 메모장에서 스크립트를 엽니다.
  • PowerShell을 사용하여 실행. 이 옵션은 스크립트를 실행하지만 스크립트가 완료되면 Windows PowerShell 프롬프트가 열린 상태로 유지되지 않습니다.
  • 편집. 이 옵션은 Windows PowerShell ISE에서 스크립트를 엽니다.

대부분의 경우 스크립트를 실행할 때 Windows PowerShell 프롬프트를 열어 두려고 합니다. 이 작업을 수행하려면 이미 열려 있는 Windows PowerShell 프롬프트에서 스크립트를 실행합니다.

PowerShell 프롬프트에서 스크립트 실행

명령 프롬프트에서 실행 파일을 실행할 때 해당 이름을 입력하여 현재 디렉터리에서 실행할 수 있습니다. 예를 들어 현재 디렉터리가 C:\app인 경우 app.exe를 입력하여 C:\app\app.exe를 실행할 수 있습니다. 현재 디렉터리를 검색하지 않으므로 이 프로세스를 사용하여 Windows PowerShell 스크립트를 실행할 수는 없습니다.

Windows PowerShell 프롬프트에서 Windows PowerShell 스크립트를 실행하려면 다음과 같은 방법을 사용할 수 있습니다.

  • 스크립트의 전체 경로를 입력합니다(예: C:\Scripts\MyScript.ps1).
  • 스크립트의 상대 경로를 입력합니다(예: \Scripts\MyScript.ps1).
  • 현재 디렉터리를 참조합니다(예: .\MyScript.ps1).

스크립트 실행 정책

Windows 컴퓨터에서 Windows PowerShell 스크립트를 실행할 수 있는지 여부를 제어할 수 있습니다. 컴퓨터에서 실행 정책을 설정하여 이 작업을 수행합니다. 컴퓨터의 기본 실행 정책은 운영 체제 버전에 따라 달라집니다. 현재 구성을 확인하려면 Get-ExecutionPolicy cmdlet을 사용할 수 있습니다.

실행 정책에 대한 옵션은 다음과 같습니다.

  • 제한됨. 스크립트를 실행할 수 없습니다.
  • AllSigned. 디지털 서명된 경우에만 스크립트를 실행할 수 있습니다.
  • RemoteSigned. 다운로드된 스크립트가 디지털 서명된 경우에만 실행할 수 있습니다.
  • 제한되지 않습니다. 모든 스크립트를 실행할 수 있지만 다운로드된 서명되지 않은 스크립트를 실행할 때 확인 프롬프트가 표시됩니다.
  • 우회. 모든 스크립트를 확인 없이 실행합니다.

참고

스크립트 실행 정책을 설정하면 신뢰할 수 없는 스크립트가 실수로 실행되지 않도록 방지할 수 있는 안전망이 제공됩니다. 그러나 실행 정책은 항상 재정의될 수 있습니다.

Set-ExecutionPolicy cmdlet을 사용하여 컴퓨터에서 실행 정책을 설정할 수 있습니다. 하지만 이 설정은 여러 컴퓨터에서 관리하기가 어렵습니다. 여러 컴퓨터에 대해 실행 정책을 구성할 때는 컴퓨터 구성\정책\관리 템플릿\Windows 구성 요소\Windows PowerShell\스크립트 실행 사용 그룹 정책 설정을 사용하여 로컬 설정을 재정의할 수 있습니다.

개별 Windows PowerShell 인스턴스에 대한 실행 정책을 재정의할 수 있습니다. 이 설정은 회사 정책상 실행 정책을 Restricted로 설정해야 하지만 사용자가 스크립트를 가끔 실행해야 하는 경우에 유용합니다. 실행 정책을 재정의하려면 -ExecutionPolicy 매개 변수를 사용하여 PowerShell.exe를 실행합니다.

Powershell.exe -ExecutionPolicy ByPass

인터넷에서 다운로드한 스크립트를 수정한 경우에도 스크립트에는 다운로드된 파일로 식별하는 특성이 계속 있습니다. 스크립트에서 해당 상태를 제거하려면 Unblock-File cmdlet을 사용합니다.