작업 스케줄러 - 작업이 종료 코드 0x8007001로 "성공적으로" 완료되었습니다.

작업 스케줄러 - 작업이 종료 코드 0x8007001로 "성공적으로" 완료되었습니다.

Windows 10 Pro에서 일일 작업을 실행하고 있습니다.

  • 최대 절전 모드에서 컴퓨터 깨우기
  • cmd.exe 시작, 명령 스크립트를 실행하여 파일을 네트워크 드라이브에 복사, 로그 파일 생성
  • 컴퓨터 종료

작업 스케줄러 내에서 작업을 수동으로 시작하면 모든 것이 의도한 대로 실행됩니다.

컴퓨터를 최대 절전 모드로 전환하면 작업 스케줄러가 지정된 시간에 컴퓨터를 깨우지만 명령 파일(.cmd)이 전혀 실행되지 않는 것 같습니다. 로그 파일이 생성되지 않고, 파일이 복사되지 않으며, 컴퓨터가 종료되지 않습니다. 작업은 다음과 같이 표시됩니다."반환 코드 2147942401로 성공적으로 완료되었습니다."이는 16진수 0x80070001입니다. 이 오류 코드는 "불법적인 기능"을 나타내는 것 같지만 그것이 무엇인지 전혀 알 수 없습니다. 특히 말했듯이 수동으로 시작하면 작업이 제대로 실행되기 때문입니다.

다음은 작업 설정에 대한 개요입니다(독일어에서 번역되었지만 명확해야 함).

  • 일반: 사용자 로그인에 관계없이 실행됩니다. 비밀번호를 저장하지 마세요. 최고 특권; Windows 10용으로 구성됨

  • 작업: 프로그램 cmd.exe를 시작합니다. 인수: /c "cmd-script 경로\script.cmd >> logfile.txt"; 시작 위치: 비어 있음

  • 조건: 컴퓨터 다시 활성화

  • 설정: 필요한 경우 실행을 허용합니다. 실행이 실패하면 10분마다 다시 시작합니다. 3일 이상 실행되면 작업을 종료합니다. 요청 시 중지되지 않은 경우 활성 작업을 강제로 종료합니다. 새 인스턴스를 시작하지 마세요

백업을 수행하는 또 다른 작업이 있습니다.정확히정상적으로 실행되는 동일한 설정입니다(깨어나서 스크립트를 실행한 다음 컴퓨터를 종료합니다).

힌트를 주시면 감사하겠습니다. 질문도 환영합니다.

답변1

사실은 그렇지 않습니다. 그러나 가장 간단한 작업 스케줄러 설정을 사용했는데 이제는 작동합니다.

일반적인:

  • 사용자가 로그인한 경우에만 사용
  • 가장 높은 권한을 사용
  • Windows 10에 맞게 구성

행동:

프로그램/스크립트: C:\Windows\System32\cmd.exe
인수:/c <your batch file with parameters>

정황:

  • 컴퓨터 다시 활성화

설정:

  • 필요한 경우 실행을 허용
  • 시작을 놓친 경우 가능한 한 빨리 실행
  • 작업이 실패하면 5분마다 다시 시작
  • 실행이 3일을 초과하면 작업 종료
  • 요청 시 중지되지 않으면 강제 종료
  • 작업이 이미 실행 중인 경우 현재 인스턴스를 중지합니다.

이제는 몇 달 동안 매일 지정된 시간에 실행됩니다.

답변2

Powershell은 예약된 작업에 까다롭습니다. 나는 이것으로 많은 시간을 보냈습니다. 다음은 검증된 배치 파일을 사용하여 문제를 해결하는 데 사용하는 방법입니다.

중간 배치 파일을 생성하고 배치 파일이 powershell을 호출하도록 해보세요. 배치 파일을 사용하면 로그에 출력할 수 있는 여러 에코를 수행할 수 있습니다. 이를 통해 프로세스에 대한 전체 stdout/stderr을 볼 수 있습니다. 이는 문제를 더 자세히 해결하는 데 도움이 될 수 있습니다.

로그는 예약된 작업 인수에 추가하여 생성할 수 있습니다 > "<path_to_log_file>" 2>&1.

답변3

나에게는 그 작업이 때로는 효과가 있을 때도 있고 때로는 그렇지 않을 때도 있었습니다. 예약된 작업 기록에 따르면, 실패하면 약 40초 동안 아무것도 하지 않고 실행된 것처럼 나타나며 완료됩니다 action "C:\windows\SYSTEM32\cmd.exe" with return code 2147942401.

  • 이 경우 그룹 정책 설정을 망칠 필요가 없었습니다.~일 것이다일하지만 항상 그런 것은 아닙니다(참조https://stackoverflow.com/questions/48343993/batch-file-from-scheduled-task-returns-code-2147942401/).

  • 내 작업을 단순화하고, 다시 만들고, 재구성해도 문제가 해결되지 않았습니다.

  • 나는 또한 내 배치 파일을 도살하고 표준 출력 리디렉션을 제거하여 로깅 기능을 포기하는 것을 고려했습니다. 또는 배치 파일을 전혀 사용하지 않고 실제 .exe 프로세스를 실행하면 됩니다. 이것이 해결책이었을 수도 있습니다.

  • 나는 또한 "시작 시" 예약된 작업을 서비스로 대체하는 것을 고려했는데, 이는 그러한 사소한 문제에 대해 상당히 비용이 많이 드는 실험이었을 것입니다.

궁극적으로 예약된 작업에 지연을 추가하는 것을 고려하고 지연된 서비스처럼 내 작업을 구성하려고 했습니다. 서비스는 "자동" 또는 "자동(지연된 시작)"일 수 있습니다. "시작 시" 예약된 작업의 경우 지연을 추가하는 기능을 포함하여 고유한 개별 속성을 갖는 트리거입니다.

시작 시 예약된 작업을 지연하기 위한 솔루션을 설명하는 이미지

내 예약된 작업이 때때로 몇 밀리초 일찍 시작되어 일부 OS 서비스나 기능이 아직 사용 가능하지 않거나 허용되지 않은 것 같습니다. 트리거에 약간의 지연을 추가하면 문제가 해결됩니다.

관련 정보