Windows 작업 스케줄러 - 작업을 백그라운드 프로세스가 아닌 응용 프로그램으로 실행하도록 만들기

Windows 작업 스케줄러 - 작업을 백그라운드 프로세스가 아닌 응용 프로그램으로 실행하도록 만들기

powershell매일 매일 실행되는 Windows 스크립트가 있습니다 . 매일 아침 자정 5분 에 시작되어 task manager애플리케이션으로 실행된 powershell다음(예: 데스크탑의 콘솔에서) 매일 밤 자정 5분 정도에 자동으로 종료됩니다.

애플리케이션으로 실행하면 여러 가지 장점이 있습니다. 실행 중인지 쉽게 알 수 있고, 작동 중인지(계속 메시지가 화면 위로 스크롤됨) 쉽게 알 수 있으며, ctrl+c언제든지 버튼을 눌러 강제 종료할 수 있습니다.

이 작업을 시작하는 Windows 작업은 run only when user is logged on내 계정이 항상 로그온되어 있기 때문에 99% 시간 동안 OK로 구성됩니다. 이 옵션은 작업이 항상 데스크탑에서 응용프로그램으로 실행됨을 의미합니다.

가끔 정전이나 업데이트로 인해 재부팅(내 계정이 로그오프)되는 경우가 있습니다. Powershell 작업을 다시 시작하고 싶기 때문에 '시스템 시작 시' 작업에 두 번째 트리거를 추가했습니다. 실험에 따르면 이것이 가능하다는 것을 보여줍니다.오직옵션이 run only when user is logged on로 변경 되면 작동합니다 run whether user is logged on or not. 그러나 이 옵션에는 문제가 있습니다. 이제 powershell 프로세스가 작업 관리자에 가 background process아닌 으로 표시됩니다 app. 이제 화면의 창에서 스크립트가 실행되지 않고 진행 상황을 모니터링할 수도 없고 완전히 종료할 수도 없습니다( task manager다음이 End Task유일한 옵션입니다).

작업 관리자가 항상 내 스크립트를 백그라운드 프로세스가 아닌 앱으로 실행하도록 하고 싶습니다.

  1. 재부팅 시 내 계정이 로그온되고 스크립트가 앱으로 시작되도록 작업 관리자를 구성하거나
  2. 내 계정이 로그온되어 있으면 스크립트가 앱으로 시작되고 내 계정이 로그온되지 않은 경우(예: 정전 후) 백그라운드 프로세스로 시작되도록 작업 관리자를 구성합니다.

아니면 다른 해결책이 있나요? 기본적으로 스크립트가 항상 실행되어야 하고, 스크립트가 무엇을 하는지 볼 수 있도록 데스크탑의 창에서 스크립트가 실행되는 모습을 볼 수 있어야 합니다.

답변1

좋아, 나 스스로 답을 찾은 것 같아.

두 개의 다른 트리거가 있는 하나의 작업 대신 각각 다른 트리거가 있는 동일한 작업의 두 가지 다른 버전을 만들었습니다.

  • 하나는 매일 아침 자정 5분에 실행되도록 설정되어 있으며 로 설정되어 있습니다 run only when user is logged on. 이는 일반 작업의 99%를 처리합니다. 작업은 데스크탑의 창에서 포그라운드 애플리케이션으로 실행됩니다.
  • 다른 하나는 로 설정되고 run at system startup이것은 으로 설정됩니다. run whether user is logged on or not이는 예정되지 않은 중단 후 작업을 시작해야 할 때 발생하는 매우 이상한 상황을 처리합니다. 좋아요, 백그라운드 프로세스로 실행됩니다. 짜증나지만 적어도 실행 중입니다!

관련 정보