Windows 7タスクスケジューラタスクがエラー2147942667で失敗する理由


133

奇妙な問題に直面しています。バッチファイルを起動するタスクをスケジュールしました。オプションを指定してタスクを実行すると、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.

41
エラーコードを16進数に変換して0x8007010Bを取得します。7はWindowsエラーになります。010Bエラーコード267になります。「ディレクトリ名が無効です」。確かに、それは起こります。
ハンスパッサント2013年

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

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

したがって、2147942667を引き起こした私の問題は、マップされたドライブが原因であることが判明しました。完全なUNCを使用するように「プログラム/スクリプト」および「開始」パスを設定すると、ジョブは正常に実行されました。
user432532 2017年

@HansPassantの優れたコメントに結び付けるには
Ian Kemp

回答:


253

私も同じ問題を抱えていました。

私に対する解決策は、Microsoft KB Article 2452723にあります。

「開始(オプション)」フィールドのパスに引用符があると、Windows Vista以降のスケジュールされたタスクの実行に失敗する

基本的に、スケジュールされたタスクを編集し、引用を[開始]フィールドから削除します。

  1. スケジュールされたタスクを開く
  2. 「アクション」タブに切り替え
  3. アクションを開く
  4. [開始(オプション)]フィールドから引用符( ")を削除します
  5. 開いているすべてのダイアログを保存して閉じます

[アクションの編集]ダイアログボックス

関連するエラーメッセージを取得するには:

1)2147942667を16進数に変換:8007010B
2)最後の4桁(010B)を取り、10進数に変換:267
3)実行:net helpmsg 267
4)結果:「ディレクトリ名が無効です。」

コマンドプロンプトウィンドウ


5
問題は使用許可に関連していました。オプションをRun whether user is logged on or not使用して実行すると、別のユーザーを使用してアプリケーションを実行していました。この新しいユーザーには、データを読み取るための適切な権限がなかったため、エラーが発生しました。ありがとう。
Alok

1
私にとっても「許可」ではありませんでした。これはStart inフォルダでした。がある場合"C:\Some Path\"、引用符があるため、誤りです。`C:\ Some Path`(引用符なし)と言う必要があります。
jp2code 2013年

16
これが解決策です。[フォルダーで開始]テキストボックスから引用符を削除します。かなり難解な修正。これで何時間も無駄になりました-マイクロソフトが役立つエラーで簡単にしたり、この明らかなバグを修正したりしたいのですが。
ジョセフ

6
価値があるので、このエラーが発生しますが、[フォルダーで開始]設定には引用符がなく、参照されたパスが存在しませんでした。
シャフラー2013

2
引用符を使用していないのに同じ問題が発生します。@RayofCommand:この問題の解決策を見つけましたか?
User1551892 2014年

9

私にとっては「開始」でした-私は古いサーバーから値をコピーし、パスを新しい.exeの場所に更新しましたが、「開始」の場所を更新するのを忘れました-存在しない場合は、このエラーも発生します

この問題をデバッグすることは価値があるので、上から@ hans-passantのコメントを引用します。

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


7

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


3

Windows7でも同じ問題が発生しました。

エラー2147942667とc:\ windows \ system32 \ CMD.EXEを実行できないというレポートが表示されました。スクリプトとスタートインで二重引用符を付けても付けなくても試しましたが、違いはありませんでした。次に、マップされたネットワークドライブへのすべてのパス参照をUNC参照(\ Server1 \ Sharexx \ my_scripts \ run_this.cmd)に置き換えてみましたが、これで修正されました。パット。


これでようやく私にもできました。「Net Use」を使用してサーバー名を取得し、pingを実行してドメイン名を取得する必要がありました。最終的には\\ machine.domain.local \ app.exeでした。\\マシン\ app.exeのが機能しなかった
グレッグ

私もそれをやりました。ありがとう!
ジェイス2017年

2

より一般的な答えを得るには、エラー値を16進数に変換し、Windowsタスクスケジューラのエラーと成功の定数で16進数の値を検索します。


3
こんにちはマイク。Windows電卓をプログラマモードで使用2147942667して、16進数に変換しました0x8007010B。指定したリンクにはその値は表示されません。もちろん参考までに。
jp2code 2015

4
私はそれをググっただけです:2147942667 in hex。グーグルも電卓になりました。
Baodad

0

私にとっては「開始」でした-私のプログラムの名前の最後にある「.py」を誤って残しました。そして、それが含まれていたフォルダー(「アプリ」)の名前を大文字にするのを忘れました。


0

私にとって、これはユーザーのPATH環境変数が原因でした。ユーザーが正しいのに環境変数が機能していないようで、実行可能パス全体をプログラムフィールドに入力する必要がありました。

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