L'attività pianificata di Windows non viene completata con il codice di errore 0xc000013a


11

Sto utilizzando Windows Server 2003 e ho un'attività pianificata che non viene completata. L'attività è impostata per eseguire uno Script comandi di Windows (.cmd) ogni giorno alle 15:00. Lo script esegue un programma che estrae alcuni dati da un database di SQL Server e li carica su un server FTP.

Il codice di errore visualizzato nella colonna "Ultimo risultato" della cartella delle attività pianificate è 0xc000013a. Una rapida ricerca su Google porta a questa pagina di supporto Microsoft che afferma: Il codice di errore "C" più comune è "0xC000013A: L'applicazione è stata terminata a seguito di un CTRL + C".

Nessuno è connesso al momento dell'esecuzione dell'attività, quindi non c'è nessuno in giro per premere CTRL + C. Non sono sicuro di capire cosa viene detto qui nella documentazione di Microsoft.

Ho controllato le cose rudimentali: l'attività pianificata è abilitata, pianificata per l'esecuzione ogni giorno e punta a un file che esiste in una posizione valida. È interessante notare che quando eseguo questa attività manualmente (eseguendo lo script .cmd dalla riga di comando o facendo clic con il pulsante destro del mouse sull'attività e facendo clic su "Esegui") l'attività viene completata correttamente.

Cosa significa questo codice di errore e come posso eseguire questa attività quando non ci sono per forzarla?


Prova ad aggiungere un codice di uscita allo script finale da solo (ad es exit 0.). Se continua a fallire, sta fallendo da solo. Altrimenti, era solo un falso codice di uscita interpretato erroneamente dall'utilità di pianificazione.
Bjoster,

Risposte:


6

Risoluzione dei problemi relativi agli script pianificati:

  1. Se non lo hai già fatto, controlla il file di registro delle attività pianificate , nella GUI in Avanzate > Visualizza registro . Cerca " ***" nel file per trovare le voci più recenti e potresti visualizzare alcune informazioni di errore aggiuntive.

  2. Definire un file di registro per acquisire l'output e inviare lì sia l'errore standard che l'errore standard. Cambia qualsiasi eco OFF in echo ON per essere sicuro di non sopprimere alcun messaggio di errore.
    Ad esempio, se viene chiamato lo script, ftp.data.cmdl'attività pianificata potrebbe essere simile a questa,

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

  3. La sceneggiatura è sospesa? Forse l'utilità di pianificazione sta uccidendo lo script (quindi il codice di errore CTRL + C) dopo un determinato periodo di tempo. Aggiungi alcuni di questi in punti strategici nella tua sceneggiatura,

    echo %DATE% %TIME%

  4. Sei sicuro che l'account che esegue lo script disponga di autorizzazioni / accesso a tutto ciò che è nello script?

  5. Se non riesci a provare gioia, esegui questo comando e pubblica qui l'output, forse possiamo iniziare con la pianificazione,

    schtasks /query /v /fo LIST /s YOURSERVER


4

Non riesco a rispondere direttamente alla domanda in quanto non so in modo specifico cosa significhi il messaggio di errore (né, quindi, come risolverlo), ma se provassi a risolverlo aggiungerei alcune scritture a un file di registro all'indirizzo punti strategici nello script e poi dopo l'orario pianificato vedere qual è l'ultimo checkpoint da eseguire.

Il mio sospetto sarebbe che ci sia qualcosa che non funziona a causa delle credenziali con cui lo script è in esecuzione o che qualcosa nello script ha bisogno di un utente connesso. Restringere il punto in cui le cose non riescono nello script potrebbe aiutarti a trovare il codice "offensivo".


2

Mi rendo conto che si tratta di un vecchio post, ma sono molto utili nella ricerca di soluzioni e forse anche quello che ho trovato può essere utile. Stavo usando WinSCP su Windows Server 2003 per caricare su un server ftp e ho ricevuto lo stesso messaggio di errore e il file SchedLgU.txt ha indicato il tempo non sufficiente nella sezione "Interrompi l'attività se fornisce:" anche se ho assegnato l'attività un sacco di tempo per caricare.

Guardando Task Manager ho visto che WinSCP.exe non stava cancellando e avevo tonnellate di processi nell'elenco, quindi ho creato un file batch (taskkill / f / im winscp.exe) per terminare qualsiasi processo aperto e io far eseguire quel file batch prima di WinSCP e ora funziona bene.


2

Mi sono imbattuto in questo oggi su un server remoto e la soluzione era cambiare l'impostazione di esecuzione da "Esegui solo quando l'utente è connesso" a "Esegui se l'utente ha effettuato l'accesso o meno".

Con "Esegui solo quando l'utente è connesso" l'attività avvia una finestra di comando che è stata chiusa al termine della sessione del desktop remoto. Con "Esegui se l'utente ha effettuato l'accesso o meno" non viene visualizzata alcuna finestra durante l'esecuzione dell'attività, quindi l'esecuzione non si interrompe al termine della sessione del desktop remoto.


1

Simile alla risposta di cori, ti consiglio di verificare chi è impostato per l'esecuzione dell'attività pianificata, poiché ho visto questo errore verificarsi quando l'account utente che esegue l'attività non ha le stesse autorizzazioni dell'utente che ha effettuato l'accesso


1

Se ciò è avvenuto prima, forse una condizione come un'interruzione della rete o un problema su un altro host può spiegare l'errore.


1

Ho avuto lo stesso errore ed era perché il file batch che stavo eseguendo richiedeva l'eliminazione di alcuni file con il comando DEL. Poiché non esiste alcun utente a rispondere a S / N per l'elaborazione in batch, l'attività pianificata viene terminata. Di seguito è riportato il messaggio che ho trovato nel registro delle attività pianificate: "l'attività è stata terminata. Questa azione è stata avviata da un amministratore o dal servizio Utilità di pianificazione (perché, ad esempio, il computer non è inattivo)". Il mio consiglio è di eseguire l'attività manualmente dal prompt dei comandi per vedere dove si sta interrompendo o chiedendo alcune interazioni dell'utente, correggerla e l'attività verrà eseguita correttamente.


1

Se si sta tentando di eseguire il programma sotto il controllo Utilità di pianificazione, System.Environment.CurrentDirectory restituirà C: \ Windows \ System32, NON dove si trova il file eseguibile. Questo errore può essere un errore di file non trovato; Stavo cercando di accedere a una sottodirectory e non esisteva nell'albero System32.


0

Ai miei script questo è chiaro. Succede perché ho "pausa" alla fine del file batch e l'attività pianificata è limitata a 20 minuti. Quando l'utente è presente, ciao può vedere il flusso del lavoro. Quando il file batch non viene terminato dall'attività pianificata, dopo 20 minuti. Questo sta causando 0xc000013a ed è ok.


0

Ho avuto lo stesso problema e risolto modificando il trigger da "All'avvio del sistema" a "All'accesso".


0

ha avuto lo stesso problema .. risolto giocando con l'utente che è registrato per eseguire l'attività pianificata. alla fine, cambiare il dominio era la risposta.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.