Windows 7のスケジュールタスクが0x2を返す

Windows XP ProとWindows 7で、同一のスケジュールタスクを実行しています。XP Proのものは問題なく実行できますが、Windows 7のものはタスクスケジューラUIの最終実行結果欄で常に0x2(システムが指定したファイルを見つけられない"ただし、コマンドラインからの実行は問題ない)を返します。

スケジュールされたタスクは、毎日.batファイルを実行します。batファイルには、Perlスクリプトを実行するための呼び出しが含まれています。前項で述べたように、XPでは問題なく実行されますが、Windows 7では全くダメです。

Windows 7のタスクは、ユーザーがログオンしているかどうかに関係なく実行されるように設定されています。また、[最高権限で実行]に設定されており、非表示にはなっていません。batファイルはコマンドラインから完全に実行され、期待通りにPerlスクリプトを呼び出し、Perlスクリプトはその役割を果たします。

この問題に対する適切な答えを探すために、広範囲に渡って検索しました。今のところ、何も見つかっていません。このWin7のスケジュールされたタスクは一体どうなっているのでしょうか?私は髪を引っ張り出す準備ができています。

私もこの問題がありました。タスクスケジューラからの0x2は、バッチファイルが見つからないと言っているようでした。パイプ矢印(>>)を追加して、バッチファイルをログファイルに出力し、スケジュールタスクを実行したところ、これは間違いでした。

タスクスケジューラーで0x2が表示されたにもかかわらず、バッチファイルは実際に実行されたが、エラーが発生したことがわかった(ログファイルにも表示された)。

もう一つ、タスクをSYSTEMまたはNETWORK SERVICEとして実行することを試してみてください。

解説 (0)

私もちょうどこれと同じ問題があり、解決しました。 アクション」タブの「プログラム/スクリプト」に、バッチファイル名を入力します。 Start In (optional):" セクションに、ファイルへのパスを引用符と終了スラッシュを付けずに入力します。

Cルート上のtestフォルダからtest.batファイルを実行する場合の例です。

プログラム/スクリプト test.bat

スタート・イン(オプション)。 C:\Test

解説 (1)

2台のWindows 7 SP1ワークステーションでSyncToy 2.1を使用してフォルダーペアを同期させようとしていたのです。最初は、ファイルをブラウズして、タスクの引数を追加しただけでした。それは、0x2というコードを返しました。Microsoft TechNetは、ファイル名が正しい場所に解決されるように、"Start In"フィールドを使用することを推奨しています。私は、SyncToyのディレクトリパスを引用符や末尾のスラッシュを付けずに "Start In" ボックスにコピーし、それを保存してタスクを実行しました。結果は成功で、コード 0x0 が表示されました!

解説 (0)