A tarefa agendada do Windows não é concluída com o código de erro 0xc000013a

10

Estou usando o Windows Server 2003 e tenho uma tarefa agendada que não foi concluída. A tarefa é configurada para executar um script de comando do Windows (.cmd) às 3pm todos os dias. O script executa um programa que extrai alguns dados de um banco de dados do SQL Server e envia esses dados para um servidor FTP.

O código de erro exibido na coluna "Último resultado" da pasta de tarefas agendadas é 0xc000013a. Uma pesquisa rápida no Google leva a esta página de suporte da Microsoft que declara: O código de erro "C" mais comum é "0xC000013A: O aplicação terminada como resultado de um CTRL + C ".

Ninguém está conectado no momento em que a tarefa é executada; portanto, não há ninguém por perto para pressionar CTRL + C. Não tenho certeza se entendi o que está sendo dito aqui na documentação da Microsoft.

Eu verifiquei as coisas rudimentares - a tarefa agendada está habilitada, agendada para ser executada todos os dias e apontando para um arquivo que existe em um local válido. Curiosamente, quando executo essa tarefa manualmente (executando o script .cmd na linha de comando ou clicando com o botão direito do mouse na tarefa e clicando em "Executar"), a tarefa é concluída com êxito.

O que esse código de erro significa e como posso executar essa tarefa quando não estou lá para forçá-la?

    
por Brian Willis 13.05.2009 / 06:08

11 respostas

6

Solução de problemas de scripts agendados:

  1. Se ainda não o fez, verifique o arquivo de log Tarefas agendadas na GUI, em Avançado > Ver Registo . Pesquise no arquivo " *** " para encontrar as entradas mais recentes, e você poderá ver algumas informações de erro extras.

  2. Defina um arquivo de log para capturar a saída e envie os erros padrão e padrão para lá. Altere qualquer echo OFF para echo ON para ter certeza de que você não está suprimindo mensagens de erro.
    Por exemplo, se o seu script for chamado de ftp.data.cmd , sua tarefa agendada poderá ter esta aparência,

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

  3. O script está suspenso? Talvez o agendador de tarefas esteja eliminando o script (daí o código de erro CTRL + C) após algum período de tempo especificado. Adicione alguns destes em pontos estratégicos no seu scipt,

    echo %DATE% %TIME%

  4. Tem certeza de que a conta que está executando o script tem permissões / acesso a tudo no script?

  5. Se você não pode ter qualquer alegria, execute este comando e poste a saída aqui, talvez possamos começar com o agendamento,

    schtasks /query /v /fo LIST /s YOURSERVER

por 16.06.2009 / 16:55
4

Não posso responder à pergunta diretamente, pois não sei especificamente o que a mensagem de erro significa (nem, portanto, como corrigi-la), mas se eu estivesse tentando solucionar o problema, adicionaria algumas gravações a uma arquivo de log em pontos estratégicos no script e depois da hora agendada, veja qual é o último ponto de verificação a ser executado.

Suspeito que algo está falhando devido às credenciais em que o script está sendo executado ou algo no script precisa de um usuário conectado. Reduzir onde as coisas falham pode ajudá-lo a encontrar o código "ofensivo".

    
por 13.05.2009 / 07:02
2

Eu percebo que esta é uma postagem antiga, mas eles são muito úteis na busca de soluções e talvez o que eu encontrei possa ser útil também. Eu estava usando o WinSCP no Windows Server 2003 para fazer o upload para um servidor ftp e recebi a mesma mensagem de erro e o arquivo SchedLgU.txt apontou para não há tempo suficiente na seção "Interromper a tarefa se houver:" embora eu tenha dado a tarefa muito tempo para fazer o upload.

Olhando no Gerenciador de Tarefas, eu pude ver que o WinSCP.exe não estava limpando e eu tinha toneladas de processos na lista, então eu criei um arquivo de lote (taskkill / f / im winscp.exe) para matar qualquer arquivo aberto. processo e eu tenho esse arquivo em lotes executado antes do WinSCP e funciona bem agora.

    
por 02.02.2011 / 23:08
1

Semelhante à resposta da cori, recomendo que você verifique quem a tarefa agendada está configurada para ser executada, pois vi esse erro ocorrer quando a conta de usuário que está executando a tarefa não tem as mesmas permissões que a registrada. usuário

    
por 13.05.2009 / 07:07
1

Se isso acontecer antes, talvez uma condição como uma interrupção de rede ou um problema em outro host possa explicar a falha.

    
por 02.08.2011 / 05:27
1

Eu tive o mesmo erro e foi porque o arquivo em lotes que eu estava executando estava solicitando que alguns arquivos fossem excluídos com o comando DEL. Como não há usuário para responder Y / N para processar em lote, a tarefa agendada é encerrada. A seguir está a mensagem que encontrei no meu log de tarefas agendadas: "a tarefa foi finalizada. Esta ação foi iniciada por um administrador ou pelo serviço Agendador de Tarefas (porque, por exemplo, o computador agora não está ocioso)." Minha recomendação é executar a tarefa manualmente a partir do prompt de comando para ver onde ela está parando ou solicitando alguma interação do usuário, corrija-a e sua tarefa será executada corretamente.

    
por 19.06.2013 / 16:23
1

Se você estiver tentando executar o programa no controle Agendador de tarefas, o System.Environment.CurrentDirectory retornará C: \ Windows \ System32, NÃO onde o executável está localizado. Este erro pode ser um erro de arquivo não encontrado; Eu estava tentando registrar em um subdiretório e não existia na árvore System32.

    
por 27.05.2014 / 20:29
1

Eu encontrei isso hoje em um servidor remoto, e a solução foi alterar a configuração de execução de "Executar somente quando o usuário está conectado" para "Executar se o usuário está logado ou não".

Com "Executar somente quando o usuário está conectado" a tarefa inicia uma janela de comando que foi fechada quando a sessão da área de trabalho remota atingiu o tempo limite. Com "Executar se o usuário está logado ou não", nenhuma janela é exibida enquanto a tarefa é executada, portanto, a execução não é interrompida quando a sessão da área de trabalho remota é encerrada.

    
por 06.03.2018 / 17:23
0

Nos meus scripts isso está claro. Isso acontece porque eu tenho "pausa" no final do arquivo de lote e a tarefa agendada está limitada a 20 minutos. Quando o usuário está presente, oi pode ver o fluxo do trabalho. Quando o arquivo em lotes não é terminado por tarefa agendada, após 20 min. Isso está causando 0xc000013a e está tudo bem.

    
por 12.08.2011 / 07:23
0

Eu tive o mesmo problema e corrigi-lo, alterando o gatilho de "On startup do sistema" para "On logon".

    
por 06.02.2014 / 21:55
0

teve o mesmo problema corrigido jogando com o usuário que está registrado para executar a tarefa agendada. no final, mudar o domínio foi a resposta.

    
por 10.06.2014 / 07:53