web-dev-qa-db-ja.com

スケジュールされたタスクエラー2147942402の原因は何ですか?

Server 2008 R2(完全にパッチを適用)

指定した種類のファイルをC:\ Windows\TempからE:\ Foo_blah_blah_blah_blah\Foo2に移動するようにスケジュールされたタスクを実行しようとしていますが、何らかの理由で次のエラーが発生します。

タスクスケジューラは、ユーザー "FOOBOX\Administrator"の "\ Move Temp Files"タスクのインスタンス "{fe0f148a-cece-44a0-a4d1-914aaf21daa8}"を開始できませんでした。追加データ:エラー値:2147942402

なぜこれが起こっているのですか?

追加の詳細:

  • タスクは、ファイルを移動する権限を持つアカウントとして実行するように構成されています。
  • タスクは、ユーザーがログオンしているかどうかに関係なく実行するように構成されています。両方のシナリオで失敗します-同じエラー。
  • タスクはローカルOSで実行するように構成されています(Windows Server 2008)
  • コマンドは2つの部分に分かれています。プログラム/スクリプト: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コマンドプロンプトから、正常に動作します。

何が欠けていますか?

23
Mike B

Ryan Riesが指摘したように、2147942402は「ファイルが見つかりません」に変換されます-これは非常に適切な応答です。 Win + Rを押して、「移動」してEnterキーを押してください。これは、タスクが失敗したことに相当するインタラクティブなものです。

その理由は、MOVEはプログラムではなく、cmdのネイティブコマンドだからです。

そのはず:

プログラム:"cmd.exe"
引数:"/c move C:\Windows\Temp\*.foo E:\Foo_blah_blah_blah_blah\Foo2\"

38

その理由は、タスクが再実行するようにスケジュールされていないときに削除されるように構成されているためです。これは[設定]タブで設定します。タスクの削除は、タスクを起動するトリガーの有効期限時に行われます。トリガーの有効期限がトリガーの開始時刻とまったく同じである場合、トリガーが発生する数秒前にタスクが削除されることがあります(偶然)。これにより、イベント101と理由コード2147942402が発生します。解決策は、トリガーの有効期限を、トリガーの開始時間より1分遅く設定することです。

1
Tom

マティアスが投稿した答えは、私の問題を理解するのに役立ちました。

コマンドライン全体を「Program」フィールド、パス、引数にまとめて入力しました。別の「Args」入力フィールドがあることに気づかなかった。引数を分割して個別に入力すると、スケジュールされたタスクが大げさになりました。

診断:OSは"C:\bin\someprog.BAT connect keep"を探すのではなく、"C:\bin\someprog.BAT"というプログラムを探し、引数connect keepを使用して呼び出しました。

私の間違いは修正されました。

0
rich p