작업 스케줄러 On 유휴 작업이 트리거되지 않음 Windows 7

작업 스케줄러 On 유휴 작업이 트리거되지 않음 Windows 7

작업 스케줄러를 사용하여 새 작업을 만들고, 트리거를 추가하고, 이를 event: on Idle로 설정하고 작업을 만들었습니다. 조건 탭에서 작업이 유휴 상태가 될 때까지 1분 동안 대기하도록 지정했습니다(테스트에만 10분이 소요되는 대신).

그런데 10분 이상 기다리면 작업이 PC1에서는 트리거되지 않고 다른 PC2에서는 트리거됩니다. 또한 작업 스케줄러에서 실행을 누르면 작업이 PC2에서 정상적으로 실행되며 1분 동안 유휴 상태일 때 자동으로 트리거되지 않습니다. 온라인으로 확인한 결과 PowerCfg -requestsPC가 유휴 상태가 되는 것을 막는 이유가 무엇인지 알 수 있으며 PC2에서 실행하면 아무것도 반환되지 않지만 PC1에서 실행하면 다음과 같은 메시지가 나타납니다.레거시 커널 호출자" 운전사.

그래서 나는 사용했지만 Powercfg -requestsoverride실행하면 powercfg -requestsoverride Driver "Legacy Kernel Caller" System성공하고 목록에서 찾았 Powercfg -requestsoverride지만 여전히 아래에 powercfg -requests표시되고 작업이 트리거되지 않습니다. 조언을 부탁드립니다.[DRIVER] Legacy Kernel CallerSYSTEM:

다음은 내 예약된 작업이 작업 스케줄러에 표시되는 방식입니다.

여기에 이미지 설명을 입력하세요

여기에 이미지 설명을 입력하세요

여기에 이미지 설명을 입력하세요

여기에 이미지 설명을 입력하세요

여기에 이미지 설명을 입력하세요

또한 내 작업의 XML은 다음과 같습니다.

<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
  <RegistrationInfo>
    <Date>2019-11-20T15:43:06.6081219</Date>
    <Author>MyPC\MyUser</Author>
    <URI>\MyAppIdleTask</URI>
  </RegistrationInfo>
  <Triggers>
    <IdleTrigger>
      <Enabled>true</Enabled>
    </IdleTrigger>
  </Triggers>
  <Principals>
    <Principal id="Author">
      <UserId>S-1-5-21-1004336348-1177238915-682003330-385281</UserId>
      <LogonType>InteractiveToken</LogonType>
      <RunLevel>LeastPrivilege</RunLevel>
    </Principal>
  </Principals>
  <Settings>
    <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
    <DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>
    <StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
    <AllowHardTerminate>true</AllowHardTerminate>
    <StartWhenAvailable>false</StartWhenAvailable>
    <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
    <IdleSettings>
      <Duration>PT1M</Duration>
      <WaitTimeout>PT0S</WaitTimeout>
      <StopOnIdleEnd>true</StopOnIdleEnd>
      <RestartOnIdle>false</RestartOnIdle>
    </IdleSettings>
    <AllowStartOnDemand>true</AllowStartOnDemand>
    <Enabled>true</Enabled>
    <Hidden>false</Hidden>
    <RunOnlyIfIdle>true</RunOnlyIfIdle>
    <WakeToRun>false</WakeToRun>
    <ExecutionTimeLimit>PT72H</ExecutionTimeLimit>
    <Priority>7</Priority>
  </Settings>
  <Actions Context="Author">
    <Exec>
      <Command>C:\MyWinFormApp\MyWinForm.exe</Command>
    </Exec>
  </Actions>
</Task>

답변1

작업을 예약할 때 주의해야 할 몇 가지 사항이 있습니다.

제가 찾은 주요 내용 중 하나는 타이밍입니다.

예를 들어 지금이 0018h이고 매일 5분마다 0000h에 실행되도록 작업을 예약한다고 가정해 보겠습니다. 모든 설정을 지정하고 모든 조건을 입력하고 작업을 테스트 시작하면 문제가 없습니다. 모든 것이 좋아 보이지만 조건이 충족되어도 작업이 시작되지 않습니다. 일정을 초과했기 때문에 그런 일이 발생합니다. 다음 0000h에만 시작됩니다. 따라서 0018h이고 실제로 작업이 작동하는 것을 보고 싶다면 0024h와 같이 즉시 나중에 시간을 설정하고 구성하는 동안 설정된 시간을 초과하지 않도록 하세요.

그런 다음 전원 상태, 네트워크 가용성, 성공 상태와 관련된 조건과 같은 다른 조건이 괜찮은지 확인할 수 있습니다.

또 다른 매우 중요한 측면: 이를 실행하는 데 사용된 자격 증명이 실제로 실행할 수 있는 충분한 권한을 가지고 있는지 확인하십시오. 해당 부분은 수동으로 테스트할 수 있기 때문에 확인하기가 더 쉽습니다.

관련 정보