Server 2008 R2(完全にパッチを適用)
指定した種類のファイルをC:\ Windows\TempからE:\ Foo_blah_blah_blah_blah\Foo2に移動するようにスケジュールされたタスクを実行しようとしていますが、何らかの理由で次のエラーが発生します。
タスクスケジューラは、ユーザー "FOOBOX\Administrator"の "\ Move Temp Files"タスクのインスタンス "{fe0f148a-cece-44a0-a4d1-914aaf21daa8}"を開始できませんでした。追加データ:エラー値:2147942402
なぜこれが起こっているのですか?
追加の詳細:
move
引数を追加:C:\Windows\Temp\*.foo E:\Foo_blah_blah_blah_blah\Foo2\
これと同じコマンドを実行すると、move C:\Windows\Temp\*.foo E:\Foo_blah_blah_blah_blah\Foo2\
Windowsコマンドプロンプトから、正常に動作します。
何が欠けていますか?
Ryan Riesが指摘したように、2147942402は「ファイルが見つかりません」に変換されます-これは非常に適切な応答です。 Win + Rを押して、「移動」してEnterキーを押してください。これは、タスクが失敗したことに相当するインタラクティブなものです。
その理由は、MOVE
はプログラムではなく、cmd
のネイティブコマンドだからです。
そのはず:
プログラム:"cmd.exe"
引数:"/c move C:\Windows\Temp\*.foo E:\Foo_blah_blah_blah_blah\Foo2\"
その理由は、タスクが再実行するようにスケジュールされていないときに削除されるように構成されているためです。これは[設定]タブで設定します。タスクの削除は、タスクを起動するトリガーの有効期限時に行われます。トリガーの有効期限がトリガーの開始時刻とまったく同じである場合、トリガーが発生する数秒前にタスクが削除されることがあります(偶然)。これにより、イベント101と理由コード2147942402が発生します。解決策は、トリガーの有効期限を、トリガーの開始時間より1分遅く設定することです。
マティアスが投稿した答えは、私の問題を理解するのに役立ちました。
コマンドライン全体を「Program」フィールド、パス、引数にまとめて入力しました。別の「Args」入力フィールドがあることに気づかなかった。引数を分割して個別に入力すると、スケジュールされたタスクが大げさになりました。
診断:OSは"C:\bin\someprog.BAT connect keep"
を探すのではなく、"C:\bin\someprog.BAT"
というプログラムを探し、引数connect keep
を使用して呼び出しました。
私の間違いは修正されました。