Windowsスケジュールタスクがエラーコード0xc000013aで完了しない


11

Windows Server 2003を使用していますが、スケジュールされたタスクを完了できません。このタスクは、毎日午後3時にWindowsコマンドスクリプト(.cmd)を実行するように設定されています。スクリプトは、SQL Serverデータベースから一部のデータを抽出し、そのデータをFTPサーバーにアップロードするプログラムを実行します。

スケジュールされたタスクフォルダーの[最終結果]列に表示されるエラーコードは0xc000013aです。Googleをすばやく検索すると、このMicrosoftサポートページが表示されます。最も一般的な「C」エラーコードは「0xC000013A:アプリケーションはCTRL + Cの結果として終了しました」です。

タスクの実行時に誰もログインしていないため、CTRL + Cを押す必要はありません。ここでマイクロソフトのドキュメントで何が言われているか理解できません。

私は基本的なことを確認しました-スケジュールされたタスクは有効で、毎日実行するようにスケジュールされ、有効な場所に存在するファイルをポイントしています。興味深いことに、このタスクを手動で(コマンドラインから.cmdスクリプトを実行するか、タスクを右クリックして[実行]をクリックして)実行すると、タスクは正常に完了します。

このエラーコードはどういう意味ですか、また、強制的にそこにいないときにこのタスクを実行するにはどうすればよいですか?


自分で終了スクリプトに終了コードを追加してみてください(例:)exit 0。それでも失敗する場合は、それ自体が失敗しています。そうでない場合は、タスクスケジューラによって誤って解釈された偽の終了コードでした。
bjoster

回答:


6

スケジュールされたスクリプトのトラブルシューティング:

  1. あなたがまだの場合は、チェックスケジュールされたタスクは、下のGUIで、ログファイルアドバンス > ログの表示。ファイルで「***」を検索して最新のエントリを見つけると、少し余分なエラー情報が表示される場合があります。

  2. ログファイルを定義して出力をキャプチャし、標準出力と標準エラーの両方を送信します。任意の変更エコーOFFエコーONにしてくださいあなたはすべてのエラーメッセージをsupressingていないこと。
    たとえば、スクリプトが呼び出されたftp.data.cmd場合、スケジュールされたタスクは次のようになります。

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

  3. スクリプトがハングしていますか?たぶん、タスクスケジューラは、指定された時間が経過した後、スクリプト(つまりCTRL + Cエラーコード)を強制終了しています。sciptの戦略的なポイントにこれらのいくつかを追加し、

    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分に制限されていることが原因です。ユーザーがいると、仕事の流れがわかります。バッチファイルがスケジュールされたタスクによって20分後に終了しない場合。これは0xc000013aの原因であり、問​​題ありません。


0

同じ問題があり、トリガーを「システム起動時」から「ログオン時」に変更することで修正しました。


0

同じ問題がありました。スケジュールされたタスクを実行するように登録されているユーザーと遊ぶことで修正されました。結局、ドメインを変更することが答えでした。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.