2012-11-29 260 views
91

私は奇妙な問題に直面しています。私は、バッチファイルを開く作業を予定しています。オプションRun only when user is logged onでタスクを実行すると、すべて正常に動作します。バックグラウンドでこのタスクを実行したいので、オプションRun whether user is logged on or notを使用して実行しています。今私は仕事をしていませんが動作しています。私は2つのエラーに従う。私はこのエラーを理解していません。この問題を解決するのを手伝ってください。Windows 7タスクスケジューラタスクがエラー2147942667で失敗する理由

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. 
+27

エラーコードを16進数に変換して0x8007010Bを取得します。 7はそれをWindowsエラーにします。これは010Bエラーコード267を作成します。 "ディレクトリ名が無効です"。確かに、それは起こる。 –

+1

@HansPassant、それは素晴らしいです。 16進数に変換し、最後の4バイトを使用してエラーコードを検索します。私はそれを覚えていることを願っています! –

+0

FWIWタスクスケジューラのメインUIに「最終実行結果」または同様の列のタスクがあり、「ディレクトリ名が無効です」というエラーメッセージが表示されています。私たちの状況の修正は、引用符付きのコマンドから実行するためにコピーしたので、Start Inフォルダから引用符を削除することについての下のjp2codeからの回答でした。 – Neek

答えて

178

私はこの同じ問題がありました。

Windows Vista onwards scheduled tasks fail to run if the path in "Start in (Optional)" field has quotes

基本的には、あなたのスケジュールされたタスクを編集して、フィールドではスタートからの引用を取る:

  1. オープン

    私のためのソリューションは、Microsoft KBの記事2452723で発見されました予定タスク

  2. [アクション]タブに切り替え
  3. アクションを開く
  4. は「フィールドからの引用を() 『削除、』
  5. 保存して閉じ、開いているすべてのダイアログ

enter image description hereより一般的な答えを

+4

この問題は、許可の使用に関連していました。 「ユーザーがログオンしているかどうかを実行する」オプションを使用して実行したとき、私は別のユーザーを使用してアプリケーションを実行していました。この新しいユーザーにはデータを読み取るための適切な権限がなく、したがってエラーが発生しました。ありがとう。 – Alok

+1

それは私にとって "許可"もしていませんでした。それは、**のスタート**フォルダです。 '' C:\ Some Path \ "'があれば、引用符をつけているので間違っています。 'C:\ Some Path \'(引用符なし)と言う必要があります。 – jp2code

+10

これが解決策です。 **フォルダ内の**開始テキストボックスから引用符を削除します。かなり難解な修正。この時間を無駄にしてしまいました。マイクロソフトが役に立つエラーで簡単にやり直してしまったり、この明白なバグを修正したりしなかったらと思います。 – Dan

2

(オプション)で起動します(16進)エラー値を変換し、その後、16進値を参照してください。Windows Task Scheduler Error and Success Constants

+3

こんにちはマイク。プログラマモードでWindows Calculatorを使用して '2147942667'をHEX:0x8007010Bに変換しました。その値はあなたが提供したリンクには表示されません。もちろん、ちょうどFYI。 – jp2code

+3

私はグーグルでそれを言った: '2147942667 in hex '。 Googleは今でも電卓を利用しています。 – Baodad

5

これは複数の理由で発生します。私の場合、これはパーミッションの問題が原因で発生しました。タスクが実行されていたユーザーにログディレクトリへの書き込み権限がないため、このエラーで失敗しました。

3

Windows7でも同じ問題がありました。

エラー2147942667と、c:\ windows \ system32 \ CMD.EXEを実行できないという報告がありました。私はScript and Start-inで二重引用符をつけて試してみましたが、違いはありませんでした。次に、すべてのパス参照をマップされたネットワークドライブとUNC参照(\ Server1 \ Sharexx \ my_scripts \ run_this.cmd)に置き換えてみました。 Pat。

+0

これはやっと私のためにもやった。私は "ネット使用"を使用してサーバー名を取得し、次にドメイン名を取得するためにpingを実行しなければなりませんでした。最終的には\\ machine.domain.local \ app.exeでした。 \\ Machine \ app.exeが機能しませんでした – greg

+0

私のためにもそれをしました。ありがとう! – Jace

2

私にとっては、 "スタートイン"でした - 私は古いサーバーから値をコピーし、新しいexeの場所にパスを更新しましたが、 "開始"場所を更新するのを忘れていました - あなたは、このエラーは、この問題をdebggingに貴重であるので、上からハンスアンパッサンのコメント@引用すぎ

を得る:

0x8007010Bを取得するにはHexにエラーコードを変換します。 7はそれを Windowsエラーにします。 010Bエラーコード267になります。 "ディレクトリ名は 無効です"。確かに、それは起こる。

関連する問題