배치 파일에서 PowerShell 스크립트를 실행하는 방법

  1. 배치 파일에서 PowerShell 스크립트를 실행하려면 -File 매개변수 사용
  2. 배치 파일에서 PowerShell 스크립트를 실행하기 위해 RemoteSigned-ExecutionPolicy로 사용
  3. 배치 파일에서 PowerShell 스크립트를 실행하기 위해 Bypass 스위치 사용
  4. 관리자로 PowerShell을 열어 배치 파일에서 PowerShell 스크립트 실행
  5. 결론
배치 파일에서 PowerShell 스크립트를 실행하는 방법

PowerShell 스크립트는 명령 모음이 포함된 .ps1 확장자를 사용하는 텍스트 파일입니다. PowerShell은 해당 명령을 순서대로 실행합니다.

배치 파일은 .bat 확장자를 사용하는 텍스트 파일입니다. 이 파일에도 순서대로 실행되는 명령 모음이 포함되어 있습니다.

명령은 .bat 파일을 열어 실행할 수 있습니다. 이 튜토리얼에서는 배치 파일에서 PowerShell 스크립트를 실행하는 방법을 배울 것입니다.

다음 명령이 포함된 PowerShell 스크립트 myscript.ps1를 만들었습니다. pause 명령은 Enter 키를 누를 때까지 배치 파일의 실행을 중단합니다.

Write-Host "Your script is executed successfully."
Pause

배치 파일에서 PowerShell 스크립트를 실행하려면 -File 매개변수 사용

배치 파일에서 PowerShell 스크립트를 실행하는 것은 Windows 환경에서 작업을 자동화하는 유용한 기술이 될 수 있습니다. -File 매개변수 방법은 PowerShell 스크립트를 배치 파일 워크플로우에 원활하게 통합할 수 있게 해줍니다.

다음 명령은 PowerShell 스크립트를 실행하기 위해 bat 파일에서 사용됩니다.

@echo off
powershell -File script.ps1

이 코드 조각에서는 먼저 @echo off를 사용하여 실행되는 명령의 표시를 억제하여 스크립트의 출력만 사용자가 볼 수 있도록 합니다. 그 다음, -File 매개변수와 함께 powershell 명령을 사용하여 script.ps1라는 PowerShell 스크립트를 실행합니다.

이 명령은 PowerShell 세션을 시작하고 실행할 스크립트 파일을 지정합니다. 이러한 명령을 조합함으로써 배치 파일에서 PowerShell 스크립트를 원활하게 실행할 수 있으며, 배치 파일 환경 내에서 PowerShell 명령을 실행하는 과정을 간소화합니다.

출력:

배치 파일에서 파워셸 스크립트 실행 - 출력 1

배치 파일에서 PowerShell 스크립트를 실행하기 위해 RemoteSigned-ExecutionPolicy로 사용

PowerShell에는 어떤 스크립트를 어디에서 실행할 수 있는지를 결정하는 다양한 실행 정책이 있습니다. 이러한 제한을 우회하는 한 가지 방법은 -ExecutionPolicy 매개변수를 RemoteSigned 값으로 지정하는 것입니다.

이 실행 정책은 로컬로 생성된 스크립트가 디지털 서명이 필요 없이 실행될 수 있도록 허용하며, 인터넷에서 다운로드한 스크립트는 신뢰할 수 있는 게시자가 서명해야 합니다.

@echo off
powershell -ExecutionPolicy RemoteSigned -File script.ps1

제공된 코드 조각에서는 powershell -ExecutionPolicy RemoteSigned -File script.ps1를 사용하여 현재 작업 디렉토리에 있는 script.ps1라는 PowerShell 스크립트를 실행합니다. -ExecutionPolicy 매개변수를 RemoteSigned로 지정함으로써, 로컬로 생성된 스크립트가 디지털 서명 없이 실행될 수 있도록 보장하고, 인터넷에서 다운로드한 스크립트는 신뢰할 수 있는 게시자가 서명해야 합니다.

출력:

배치 파일에서 파워셸 스크립트 실행 - 출력 2

배치 파일에서 PowerShell 스크립트를 실행하기 위해 Bypass 스위치 사용

제한을 우회하고 실행 정책에 의해 부과된 제한 없이 스크립트를 실행하도록 허용하려면, 값으로 Bypass를 가진 -ExecutionPolicy 매개변수를 사용할 수 있습니다. 이 방법은 배치 파일에서 PowerShell 스크립트를 실행하면서 실행 정책 제한을 우회하는 간단한 방법을 제공합니다.

@echo off
powershell -ExecutionPolicy Bypass -File C:\path\script.ps1

제공된 코드 조각에서는 powershell -ExecutionPolicy Bypass -File C:\path\script.ps1를 사용하여 C:\path\scripts 디렉토리에 있는 script.ps1라는 PowerShell 스크립트를 실행합니다. 실행 정책을 Bypass로 설정함으로써, PowerShell에게 실행 정책 제한을 무시하도록 지시하여 스크립트를 방해 없이 실행할 수 있습니다.

출력:

배치 파일에서 파워셸 스크립트 실행 - 출력 3

다음 명령도 실행할 수 있습니다.

@echo off
powershell -NoProfile -ExecutionPolicy Bypass -Command "& 'C:\path\script.ps1'"

제공된 명령에서는 -ExecutionPolicy Bypass를 사용하여 PowerShell에게 실행 정책 제한을 무시하도록 지시하여 스크립트가 제한 없이 실행되도록 합니다. 또한, -NoProfile 매개변수는 사용자의 PowerShell 프로필이 로드되지 않도록 하여 스크립트의 깨끗한 실행 환경을 유지하는 데 도움을 줍니다.

출력:

배치 파일에서 파워셸 스크립트 실행 - 출력 4

관리자로 PowerShell을 열어 배치 파일에서 PowerShell 스크립트 실행

관리자로 PowerShell을 열어 배치 파일에서 PowerShell 스크립트를 실행하는 것은 관리 액세스가 필요한 스크립트를 실행하는 중요한 방법입니다. 이 접근 방식은 PowerShell 세션이 시스템 설정을 수정하거나 제한된 리소스에 접근하는 등 관리 작업을 수행하는 데 필요한 권한을 갖도록 보장합니다.

@echo off
powershell.exe -NoProfile -ExecutionPolicy Bypass -Command "Start-Process powershell.exe -Verb RunAs -ArgumentList '-NoProfile -ExecutionPolicy Bypass -File C:\path\script.ps1'"

이 코드 조각에서는 powershell.exe를 사용하여 관리 권한으로 PowerShell 세션을 시작합니다. Start-Process cmdlet의 -Verb RunAs 매개변수는 PowerShell이 관리 권한으로 열리도록 보장합니다.

새 PowerShell 세션에 필요한 인수(-NoProfile -ExecutionPolicy Bypass -File C:\path\script.ps1)를 전달함으로써, 지정된 스크립트(script.ps1)를 관리 권한으로 실행할 수 있게 됩니다.

출력:

배치 파일에서 파워쉘 스크립트 실행 - 출력 5

결론

이 기사에서는 배치 파일에서 PowerShell 스크립트를 실행하는 다양한 방법을 탐구했습니다. 스크립트를 직접 실행하기 위해 -File 매개변수를 사용하는 방법과 RemoteSignedBypass 매개변수를 사용하여 실행 정책 제한을 우회하는 방법을 배웠습니다.

또한, 관리 권한으로 PowerShell을 열어 elevated privileges로 스크립트를 실행하는 방법에 대해서도 논의했습니다. 각 방법은 배치 파일에서 PowerShell 스크립트를 실행하는 독특한 접근 방식을 제공하여, 실행 환경에 대한 유연성과 제어를 제공합니다.

튜토리얼이 마음에 드시나요? DelftStack을 구독하세요 YouTube에서 저희가 더 많은 고품질 비디오 가이드를 제작할 수 있도록 지원해주세요. 구독하다
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

관련 문장 - PowerShell Script