배치 파일에서 PowerShell 스크립트를 실행하는 방법
-
배치 파일에서 PowerShell 스크립트를 실행하려면
-File
매개변수 사용 -
배치 파일에서 PowerShell 스크립트를 실행하기 위해
RemoteSigned
를-ExecutionPolicy
로 사용 -
배치 파일에서 PowerShell 스크립트를 실행하기 위해
Bypass
스위치 사용 - 관리자로 PowerShell을 열어 배치 파일에서 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 명령을 실행하는 과정을 간소화합니다.
출력:
배치 파일에서 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
로 지정함으로써, 로컬로 생성된 스크립트가 디지털 서명 없이 실행될 수 있도록 보장하고, 인터넷에서 다운로드한 스크립트는 신뢰할 수 있는 게시자가 서명해야 합니다.
출력:
배치 파일에서 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에게 실행 정책 제한을 무시하도록 지시하여 스크립트를 방해 없이 실행할 수 있습니다.
출력:
다음 명령도 실행할 수 있습니다.
@echo off
powershell -NoProfile -ExecutionPolicy Bypass -Command "& 'C:\path\script.ps1'"
제공된 명령에서는 -ExecutionPolicy Bypass
를 사용하여 PowerShell에게 실행 정책 제한을 무시하도록 지시하여 스크립트가 제한 없이 실행되도록 합니다. 또한, -NoProfile
매개변수는 사용자의 PowerShell 프로필이 로드되지 않도록 하여 스크립트의 깨끗한 실행 환경을 유지하는 데 도움을 줍니다.
출력:
관리자로 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
)를 관리 권한으로 실행할 수 있게 됩니다.
출력:
결론
이 기사에서는 배치 파일에서 PowerShell 스크립트를 실행하는 다양한 방법을 탐구했습니다. 스크립트를 직접 실행하기 위해 -File
매개변수를 사용하는 방법과 RemoteSigned
및 Bypass
매개변수를 사용하여 실행 정책 제한을 우회하는 방법을 배웠습니다.
또한, 관리 권한으로 PowerShell을 열어 elevated privileges로 스크립트를 실행하는 방법에 대해서도 논의했습니다. 각 방법은 배치 파일에서 PowerShell 스크립트를 실행하는 독특한 접근 방식을 제공하여, 실행 환경에 대한 유연성과 제어를 제공합니다.