PowerShell에는 악성 스크립트와 명령이 실행되는 것을 방지하는 다양한 보안 계층이 있습니다. 예를 들어 기본적으로 PowerShell 실행 정책을 변경하지 않는 한 인터넷에서 다운로드한 스크립트를 실행할 수 없습니다. 또 다른 보안 조치는 스크립트를 두 번 클릭하여 실행하는 것을 방지합니다. PS1 스크립트를 PowerShell과 연결할 수 없으며 스크립트를 실행하는 유일한 방법은 스크립트를 마우스 오른쪽 버튼으로 클릭하고 실행 옵션을 선택하는 것입니다. 두 번 클릭하면 메모장에서 열립니다. 이는 보안 조치에 적합하지만 예약된 작업이 실행될 때 PowerShell 스크립트를 실행하려는 경우에는 성가신 일입니다. 해결 방법은 간단합니다. 배치 스크립트를 사용하여 PowerShell 스크립트를 자동으로 실행할 수 있습니다.
배치 스크립트
다음은 Windows 10에서 PowerShell 스크립트를 자동 실행하는 데 필요한 배치 스크립트입니다. 각 PowerShell 스크립트에는 고유한 배치 스크립트가 필요합니다.
통사론
@ECHO OFF PowerShell.exe -Command "Path to script" PAUSE
“Path to script”를 실행하려는 PowerShell 스크립트의 실제 경로로 바꿉니다. 다음 예를 고려하십시오.
예시
@ECHO OFF PowerShell.exe -Command "C:Reminder-ScriptsMilkBuy-Milk.ps1" PAUSE
메모장을 열고 스크립트를 붙여넣습니다. .bat 확장자로 파일을 저장합니다.
이 배치 파일이 하는 일은 PowerShell을 연 다음 지정한 스크립트를 실행하는 것입니다. 여전히 데스크톱에서 PowerShell 스크립트를 두 번 클릭하여 PowerShell에서 자동으로 실행되도록 할 수 없습니다. 현재 파일은 명령 프롬프트 창을 열고 ‘계속하려면 아무 키나 누르십시오’ 메시지를 표시합니다. 키를 누를 때만 PowerShell 스크립트가 실행됩니다. 개입하지 않고 스크립트를 실행하려면 위의 스크립트를 편집하고 ‘PAUSE’ 줄을 제거하십시오. 다음과 같이 보여야 합니다.
@ECHO OFF PowerShell.exe -Command "Path to script"
작업 스케줄러 및 PowerShell 스크립트
예약된 작업에 대한 작업으로 PowerShell 스크립트를 자동으로 실행하려고 한다고 가정합니다. 이를 수행하려면 먼저 위에 표시된 대로 해당 배치 스크립트를 생성하여 PowerShell 스크립트를 실행해야 합니다. 다음으로, 예약된 작업을 생성할 때 트리거에 대한 응답으로 취해야 하는 작업에서 배치 스크립트를 선택합니다. 이것은 실제로 PowerShell 스크립트를 실행합니다.
여기서는 작업 스케줄러를 예로 사용했지만 다른 자동화 앱을 사용하는 경우에도 Batch 스크립트를 호출해야 합니다. 유일한 예외는 사용 중인 자동화 앱이 PowerShell을 연 다음 PowerShell 스크립트를 가리킬 수 있는 경우입니다.