私は奇妙な問題に直面しています。バッチファイルを処理するタスクをスケジュールしました。オプションRun only when user is logged on
を指定してタスクを実行すると、すべて正常に動作します。しかし、私はこのタスクをバックグラウンドで実行したいので、オプションRun whether user is logged on or not
を使用して実行しています。今、タスクを実行すると動作しません。次の2つのエラーが表示されます。私はこのエラーを理解していません。この問題の解決を手伝ってください。
Task Scheduler failed to launch action "C:\Windows\SYSTEM32\cmd.exe" in instance "{2a7cc950-fad9-4633-9701-af75a0fd220d}" of task "\stmm\Daemon". Additional Data: Error Value: 2147942667.
Task Scheduler failed to start instance "{2a7cc950-fad9-4633-9701-af75a0fd220d}" of "\stmm\Daemon" task for user "GBLADHEDANI\N011940" . Additional Data: Error Value: 2147942667.
これと同じ問題がありました。
私にとっての解決策は、Microsoft KB記事2452723で見つかりました。
「(オプション)で開始」フィールドのパスに引用符がある場合、Windows Vista以降のスケジュールされたタスクの実行は失敗します
基本的に、スケジュールされたタスクを編集して、[開始]フィールドから引用を取り出します。
私にとっては「開始」でした-古いサーバーから値をコピーし、新しいexeの場所へのパスを更新しましたが、「開始」の場所を更新するのを忘れました-存在しない場合、このエラーが発生しますも
上記の@ hans-passantのコメントを引用してください。この問題をデバッグすることは価値があるからです。
エラーコードを16進数に変換して0x8007010Bを取得します。 7では、Windowsエラーになります。これにより、010Bエラーコード267が発生します。「ディレクトリ名が無効です」。確かに、それは起こります。
これは、複数の理由で発生する可能性があります。私の場合、これは権限の問題が原因で発生しました。タスクが実行されていたユーザーには、ログディレクトリへの書き込み権限がないため、このエラーで失敗しました。
Windows7でも同じ問題が発生しました。
エラー2147942667と、c:\ windows\system32\CMD.EXEを実行できないというレポートが表示されていました。スクリプトとStart-inで二重引用符を使用して、または使用せずに試しましたが、違いはありませんでした。次に、マップされたネットワークドライブへのすべてのパス参照をUNC参照(\ Server1\Sharexx\my_scripts\run_this.cmd)に置き換えてみましたが、修正されました。パット。
より一般的な答えを得るには、エラー値を16進数に変換してから、 Windowsタスクスケジューラのエラーと成功の定数 で16進数の値を検索します
私にとっては「開始」でした-私は誤って私のプログラムの名前の最後の「.py」に残しました。そして、それが入っていたフォルダーの名前を大文字にするのを忘れていました(「アプリ」)。