Windows 예약 된 작업이 오류 코드 0xc000013a와 함께 완료되지 않습니다


11

Windows Server 2003을 사용하고 있으며 예약 된 작업이 완료되지 않습니다. 이 작업은 매일 오후 3시에 Windows 명령 스크립트 (.cmd)를 실행하도록 설정되어 있습니다. 이 스크립트는 SQL Server 데이터베이스에서 일부 데이터를 추출하여 해당 데이터를 FTP 서버에 업로드하는 프로그램을 실행합니다.

예약 된 작업 폴더의 "마지막 결과"열에 표시되는 오류 코드는 0xc000013a입니다. 빠른 Google 검색은 이 Microsoft 지원 페이지로 연결됩니다 . 가장 일반적인 "C"오류 코드는 "0xC000013A : 응용 프로그램이 CTRL + C의 결과로 종료되었습니다"입니다.

작업을 실행할 때 아무도 로그인하지 않았으므로 CTRL + C를 누를 사람이 없습니다. Microsoft 설명서에서 여기에 무엇을 말하고 있는지 잘 모르겠습니다.

기초 작업을 확인했습니다. 예약 된 작업이 활성화되어 있고 매일 실행되도록 예약되어 있으며 유효한 위치에있는 파일을 가리 킵니다. 흥미롭게도,이 작업을 수동으로 실행하면 (명령 줄에서 .cmd 스크립트를 실행하거나 작업을 마우스 오른쪽 단추로 클릭하고 "실행"을 클릭하여) 작업이 성공적으로 완료됩니다.

이 오류 코드는 무엇을 의미하며, 강제 실행하지 않을 때이 작업을 실행하려면 어떻게해야합니까?


종료 스크립트에 직접 종료 코드를 추가해보십시오 (예 :) exit 0. 여전히 실패하면 자체 실패입니다. 그렇지 않은 경우 작업 스케줄러가 잘못 해석 한 가짜 종료 코드 일뿐입니다.
bjoster

답변:


6

예약 된 스크립트 문제 해결 :

  1. 아직 고급 > 로그보기 의 GUI에서 예약 된 작업 로그 파일을 확인 하십시오 . 파일에서 " "을 검색하여 가장 최근 항목을 찾으면 약간의 추가 오류 정보가 표시 될 수 있습니다.***

  2. 출력을 캡처 할 로그 파일을 정의하고 표준 오류와 표준 오류를 모두 보내십시오. 오류 메시지가 표시되지 않도록 echo OFFecho ON 으로 변경 하십시오.
    예를 들어 스크립트가 호출되면 ftp.data.cmd예약 된 작업은 다음과 같습니다.

    cmd /c ftp.data.cmd >> ftp.data.log 2>&1

  3. 스크립트가 걸려 있습니까? 작업 스케줄러가 지정된 시간이 지나면 스크립트를 종료 (따라서 CTRL + C 오류 코드) 할 수 있습니다. 이 중 일부를 전략적 요점에서 추가하십시오.

    echo %DATE% %TIME%

  4. 스크립트를 실행하는 계정에 스크립트의 모든 항목에 대한 권한 / 액세스 권한이 있습니까?

  5. 기쁨을 얻지 못하면이 명령을 실행하고 여기에 출력을 게시하십시오. 아마도 일정으로 시작할 수 있습니다.

    schtasks /query /v /fo LIST /s YOURSERVER


4

오류 메시지의 의미를 정확히 알지 못하기 때문에 질문에 직접 대답 할 수는 없지만 문제를 해결하는 방법은 문제를 해결하려고 할 때 로그 파일에 몇 번의 쓰기를 추가합니다 스크립트의 전략적 포인트 다음 예약 된 시간이 지나면 마지막으로 실행할 체크 포인트가 무엇인지 확인합니다.

스크립트가 실행되는 자격 증명으로 인해 실패했거나 스크립트의 무언가에 로그인 한 사용자가 필요하다는 의심이 있습니다. 스크립트에서 실패한 부분을 좁 히면 "불쾌한"코드를 찾는 데 도움이 될 수 있습니다.


2

나는 이것이 오래된 게시물이라는 것을 알고 있지만 솔루션을 검색 할 때 매우 유용하며 내가 찾은 것이 도움이 될 수 있습니다. Windows Server 2003에서 WinSCP를 사용하여 ftp 서버에 업로드하고 동일한 오류 메시지가 표시되고 SchedLgU.txt 파일이 "작업이 완료된 경우 작업 중지 :"섹션에서 시간이 충분하지 않음을 나타냅니다. 업로드 할 시간이 충분합니다.

작업 관리자에서 WinSCP.exe가 지워지지 않고 목록에 많은 프로세스가 있음을 알 수 있으므로 열린 프로세스를 종료하기 위해 배치 파일 (taskkill / f / im winscp.exe)을 만들었습니다. 해당 배치 파일을 WinSCP 전에 실행하면 제대로 작동합니다.


2

오늘 원격 서버 에서이 문제가 발생했으며 해결책은 "사용자가 로그온 한 경우에만 실행"에서 "사용자가 로그인했는지 여부에 관계없이 실행"으로 실행 설정을 변경하는 것이 었습니다.

"사용자가 로그온 한 경우에만 실행"을 사용하면 작업이 원격 데스크톱 세션 시간이 초과되었을 때 닫히는 명령 창을 시작합니다. "사용자의 로그인 여부에 관계없이 실행"을 사용하면 작업이 실행되는 동안 창이 나타나지 않으므로 원격 데스크톱 세션이 종료 될 때 실행이 중지되지 않습니다.


1

cori의 답변과 비슷하게 작업을 실행하는 사용자 계정이 로그인 한 사용자와 동일한 권한을 가지고 있지 않을 때이 오류가 발생하는 것을 보았으므로 예약 된 작업이 실행되도록 설정된 사람을 확인하는 것이 좋습니다.


1

이전에 실행 된 경우 네트워크 중단 또는 다른 호스트의 문제와 같은 조건이 실패를 설명 할 수 있습니다.


1

나는 같은 오류가 있었고 실행중인 배치 파일이 DEL 명령으로 일부 파일을 삭제하라는 메시지를 표시했기 때문에 발생했습니다. 일괄 처리를 위해 Y / N에 응답 할 사용자가 없으므로 예약 된 작업이 종료됩니다. 예약 된 작업 로그에서 찾은 메시지는 다음과 같습니다. "작업이 종료되었습니다.이 작업은 관리자 나 작업 스케줄러 서비스 (예 : 컴퓨터가 현재 유휴 상태가 아니기 때문에)에 의해 시작되었습니다." 내 권장 사항은 명령 프롬프트에서 수동으로 작업을 실행하여 일부 사용자 상호 작용을 중지하거나 묻는 위치를 확인하고 수정하면 작업이 정상적으로 실행되는 것입니다.


1

작업 스케줄러 제어에서 프로그램을 실행하려고하면 System.Environment.CurrentDirectory가 실행 파일이있는 곳이 아니라 C : \ Windows \ System32를 반환합니다. 이 오류는 파일을 찾을 수없는 오류 일 수 있습니다. 하위 디렉토리에 로그인하려고했지만 System32 트리에 존재하지 않았습니다.


0

내 스크립트에서 이것은 분명합니다. 배치 파일의 끝에 "일시 중지"가 발생하고 예약 된 작업이 20 분으로 제한되어 있습니다. 사용자가 있으면 hi는 작업의 흐름을 볼 수 있습니다. 배치 파일이 20 분 후에 예약 된 작업으로 종료되지 않는 경우 이것은 0xc000013a의 원인이며 괜찮습니다.


0

같은 문제가 발생하여 트리거를 "시스템 시작"에서 "로그온"으로 변경하여 문제를 해결했습니다.


0

예약 된 작업을 실행하도록 등록 된 사용자와 재생하여 동일한 문제가 발생했습니다. 결국 도메인을 변경하는 것이 답이었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.