質問

2017年11月01日 17時25分
  • Windowsのタスクスケジューラが失敗する 【解決済み】

kim
情シスのオープンナレッジ『Syszo』サービス終了のお知らせ

解決済み

過去の質問を参考にしたのですが解決しませんでしたため、投稿いたします。
Windowsのタスクスケジューラが操作の開始に失敗され、困っております。
同事象で困った方、どのように対処されたか共有頂けますでしょうか。
「まだこんなこと、試せるんじゃない?」という回答だけでも大変助かります。

■エラー
前回の実行結果:ディレクトリ名が無効です。(0x8007010B)
イベントID  :203
エラー内容  :タスク スケジューラは、タスク "●●" のインスタンス "●●●" の操作 "C:\Windows\SYSTEM32\cmd.exe" の起動に失敗しました。追加データ: エラー値: 2147942667。

■環境
OS:Windows Small Business Sercer 2011 Standard

■タスクの内容
デスクトップ上にあるバッチファイルを実行させる

■設定内容
1. 「ユーザーがログオンしているときのみ実行する」のチェックは外している
2. 「最上位の特権で実行する」にチェックを入れている
3.  操作の設定では""が入力されていないこと、開始オプション値を入力していること確認済み
4. 「コンピューターをAC電源で使用している場合のみタスクを開始する」のチェックは外している

■試したこと
・コマンドプロンプトより直接バッチをたたくと成功する
・既存タスクを無効状態にして、同内容にて新規タスクを作成するが改善せず
・他の動作に成功しているタスクと同内容に編集するが改善せず
・C:\Windows\SYSTEM32にコマンドプロンプトが存在することを確認

7件の回答があります

解決済み

具体的なバッチの記述があればもっとわかるかもしれません


基準となるディレクトリ(フォルダ)が”タスクでの実行時”と”マニュアル実行時”では違うので「ディレクトリがない」になるのではないでしょうか

CD¥      (これでC:¥になる)

CD {実行したいフォルダ、¥で連結も可能}  
  
を入れて実行するフォルダを明示的に指定してはどうでしょう

2017年11月02日 09時07分

回答

こんにちは

同様のエラーコードの経験はないですが
ちょっとgoogle先生にきいてみると、くくる話がヒットしています。
となると、pathやエスケープ文字の話だと思うので
そのへんで試行錯誤してみてはいかがでしょうか?

有り体に言うと、DOSの名残で、ファイルまでのpathにスペースが入っていると
""でくくらねばならない、とかそういう話です。
#あくまで一例です

たとえば、"C:\Program Files\hogehoge\nyao.exe"を実行しようとする際、
くくってないと、C:\Programまでで一区切りと思われてしまいますので
そんなコマンドはないよ、ってエラーになります。

回答

desatoさん

ご回答ありがとうございます。

バッチの内容には「set logfile」や「robocopy 」の記述があります。

タスクスケジューラーの操作の編集画面にて、デスクトップにおいているバッチファイルを
直接「参照」より選択しておりました。
ご教授いただきましたように、C:\Usersの記述をCD\Usersに変更してみたり試してみましたが、うまくいきませんでした。

”タスクでの実行時”と”マニュアル実行時”では違うという視点がなかったので、
このあたりをポイントに調べて、試してみたいと思います。

アドバイスいただき、ありがとうございました!

2017年11月09日 16時39分
kim

回答

つもりみなとさん

ご回答いただき、ありがとうございます。

タスクスケジューラーの操作の編集画面を再確認してみましたが、
フォルダパスにスペースはございませんでした。。

「ファイルまでのpathにスペースが入っていると""でくくる」等のルールを
きちんとまだ調べることができておりませんでしたので、
解決はしておりませんが一歩前に進めました!

アドバイス頂き、ありがとうございます。

2017年11月09日 16時43分
kim

回答

具体的なバッチの記述があればもっとわかるかもしれません

と質問させていただいたのですが...

パスに””””をつけるのはスペース含みだけでなく漢字があったりするときも必要(心配ならつけた方が確実です。

「デスクトップに」とありましたが それを C:¥ に移してみてはどうでしょう

  デスクトップはユーザに依存するので「管理者」じゃないと実行できない場合があります。

2017年11月09日 17時26分

回答

みなさま、コメント頂き大変ありがとうございました。
その後いろいろ試し、無事に解決いたしました。
やはり、タスクの設定に問題があったと思われます。

■前回までの確認済み操作
・投稿で記述した内容
・タスク再作成
・バッチファイルの保存場所をC直下のtmpフォルダへ変更

■新しく試した操作
1.バッチファイル内末尾の改行なくす【NG】
 ・デスクトップ上バッチファイル(以下Aバッチ)のコピーをC直下tmpへ保存(以下Bバッチ)
 ・Bバッチ記述確認
 ・記述最後の改行2つを削除
 ・既存タスクの操作プログラムを再登録して実行するが失敗

2.testバッチ作成【NG】
 ・md[test]と記述した新規フォルダ作成バッチをC直下tmpへ作成
 ・testバッチ右クリック>開くでの手動実行成功
 ・1のタスクスケジューラーの操作プログラムをtestバッチへ変更するが失敗

3.新規タスクでtest実行【OK】
 ・2の既存タスクを削除
 ・新規タスクでをtest実行タスク作成
 ・タスク右クリックでの実行成功

4.新規タスクでBバッチ手動実行【OK】
 ・3とは別で新規タスクを作成してBバッチをタスク登録
 ・タスク右クリックでの実行成功

5.新規タスクでBバッチ自動実行【OK】
 ・4のタスクにて、設定した時刻にタスクが正常に動作完了

6.Aバッチをタスクスケジューラー内で手動実行【OK】
 ・5のタスクスケジューラーの操作プログラムをAバッチ変更
 ・タスク右クリックでの実行に成功。

7.Aバッチをタスクスケジューラーで自動実行【OK】
 ・6のタスクにて、設定した時刻にタスクが正常に動作完了

2017年11月16日 16時53分
kim

回答

・バッチファイルの保存場所をC直下のtmpフォルダへ変更

tmpフォルダに保管 というところがなんかへんですね tmpは一時的に使うもの という位置づけですから、人によってはバッサリ消しちゃいますよ

tmp じゃなくて BatTask とかの名前にしてはいかがでしょう



いろいろ書いてくれてますが、なにが原因ですか? C:¥ の下のところ にしたのが効を奏しているということでしょうか?

2017年11月16日 17時01分

あなたもコメントしましょう!