작업 스케줄러에서 실행할 때 스크립트가 exe를 시작할 수 없습니다.

작업 스케줄러에서 실행할 때 스크립트가 exe를 시작할 수 없습니다.

매우 이상한 문제가 있습니다.
powershell 스크립트는 exe를 시작하는 것입니다. 수동으로 실행(마우스 오른쪽 버튼 클릭 > 실행)하거나 Powershell 콘솔에서 스크립트 호출을 통해 실행하면 제대로 작동합니다. 그런데 작업 스케줄러에서 작업을 생성하면 기본적으로 고유 이름을 가진 프로세스가 생성되는데 프로세스가 비어 있고 아무것도 하지 않습니다. CPU가 필요하지 않으며 프로그램이 작업 표시줄에 나열되지 않으며 프로그램 창이 열리지 않습니다. 스크립트에는 기본적으로 다음만 포함됩니다.

Start-Process -FilePath <Path to exe>

나는 또한 다음을 시도했습니다.

& <path to file>

하지만 그것도 작동하지 않았습니다. 작업은 매개변수를 사용하여 powershell.exe 프로그램을 시작합니다.

-ExecutionPolicy Unrestricted -Command "& C:\Scripts\MyScript.ps1"

관리자 권한으로 실행하고 "가장 높은 권한으로 실행"도 선택해 보았습니다. 그것도 도움이 되지 않았습니다.

작업을 실행한 다음 프로그램을 수동으로 시작하면 이름은 같지만 핸들이 다른 두 개의 별도 프로세스가 생성됩니다. 일반적으로 프로그램의 인스턴스는 하나만 실행할 수 있습니다.

수동으로 실행하면 스크립트가 제대로 작동하므로 이는 분명히 작업 스케줄러에 문제가 있는 것 같습니다. 누구든지 나를 도와줄 수 있나요?

답변1

나는 매우 유사한 문제처럼 들리는 것을 만났습니다. 일반적으로 이 문제가 발생한 응용 프로그램은 파일 대기열을 열고 처리하기 시작합니다. 이 경우 설명했듯이 예약된 작업에서 실행될 때 완전히 유휴 상태로 유지됩니다. 궁극적으로 효과가 있었던 것은 .exe를 실행한 .ps1을 호출하는 예약된 작업에서 호출된 배치 파일이었습니다.

배치 파일의 줄은 아래와 같으며 설명과 일치하는 설정으로 예약된 작업에서 호출됩니다. 내 설정의 LaunchProcess.ps1에는 exe에 대한 표준 시작 프로세스가 포함되어 있습니다. 나는 과거 2008r2 서버를 사용하지 않았지만 현재까지 작동한다고 생각합니다.

배치 파일 파일 이름 = restartProcess.bat

SET ThisScriptsDirectory=%~dp0 SET PowerShellScriptPath=%ThisScriptsDirectory%LaunchProcess.ps1 PowerShell -NoProfile -ExecutionPolicy Bypass -command "& {start-process PowerShell -ArgumentList '-NoProfile -ExecutionPolicy Bypass -File ""%PowerShellScriptPath%""' -Verb RunAs}";

관련 정보