none
バッチファイルをタスクスケジューラ* で実行した場合のエラー改善方法について RRS feed

  • 質問

  • 環境)Windows Server 2003 R2 SE SP2

    Aというサーバの特定ドライブのAAという共有フォルダから、ネットワーク経由で、
    Bのサーバの特定ドライブのBBという共有フォルダ内にtxtログを配置するバッチ(C.vbs)を作ってタスクスケジューラで1日1時間置きに自動実行させようと思うのですが、
    うまくいきません。どうすればよいのでしょうか?

    *24時間365日動くタスクの設定

    タスクスケジューラログ(手動実行分:正常終了/自動実行分:エラー)

    "TEST.job" (TEST.vbs)
     開始 2010/08/05 10:42:47
    "TEST.job" (TEST.vbs)
     完了 2010/08/05 10:43:24
     結果: タスクは次の終了コードで完了しました: (0).

    "TEST.job" (TEST.vbs)
     開始 2010/08/05 12:00:00
    "TEST.job" (TEST.vbs)
     完了 2010/08/05 12:00:00
     結果: タスクは次の終了コードで完了しました: (1).

    [ ***** 一番最近のエントリはこの行より上にあります ***** ]


    MSのごくごく一般的なQA(文書番号: 267031)では、コード1は、以下の様な原因との事ですが、「今すぐ実行する」でタスクスケジューラを手動で動かした場合(10:42:47)、正常に終了している為、バッチそのものは問題がなく、タスクスケジューラ自動実行の設定の内容に問題有りと考えました。

    「コード 1 または 0x1: 誤った関数が呼ばれたか、不明な関数が呼ばれました。 」

    ところが、念の為、改めて設定を確認も、
    以下タスク24時間365日動くタスクの設定として誤りが見受けられません。

    1)タスクとして必要なプログラムを登録します。
    2)タスクを右クリックしてプロパティを開きます。

    3)タスクタブで以下の設定をします。
    ・実行するファイル名に、実行するVBSを指定。
    ・実行するアカウントに、
    サーバへログインしたアカウントと同じドメインAdministratorアカウントを指定し、
    パスワードを設定。
    ・ログオンしている場合にのみ実行する([実行する]がオンになっている場合)
    :ブランク(チェックしない)
    ・実行する(スケジュールされたタスクは指定の時間に実行されます)
    :チェックを入れる

    4)スケジュールタブで以下の設定をします。
    ・タスクのスケジュール:日単位
    ・開始時刻:0:00
    ・タスクスケジュール(日単位):1日に1回
    5)スケジュールタブの詳細設定で以下を設定します。
    ・開始日:開始日入力
    ・終了:ブランク(チェックしない)
    ・タスクを繰り返し実行:チェックを入れる
    ・間隔:1時間
    ・終了時間:継続期間にチェック
    ・時間:23
    ・分:59
    ・タスクが実行中の場合、この時刻で停止する:ブランク(チェックしない)
    6)設定タブで以下設定をします。
    ・再実行がスケジュールされていない
    ・場合は、タスクを削除する:ブランク
    ・タスクの継続時間を指定する:チェック
    ・時間:72時間
    ・分:0
    ・コンピュータが次のあ時間アイドルになった場合のみタスクを開始する
    :ブランク(チェックしない)
    ・コンピュータがアイドル状態でない場合はタスクを停止する
    :ブランク(チェックしない)
    ・バッテリーモードの場合タスクを実行しない
    :チェック(デフォルト)/ブランク(チェックしない) ←両チェック試行も変化なし
    ・バッテリーモードが開始されたらタスクを停止する 
    :チェック(デフォルト)/ブランク(チェックしない) ←両チェック試行も変化なし
    ・タスクの実行時にスリープを解除する:ブランク(チェックしない)


    タスク設定時の実行するアカウント名については、以下全て試行しました。

    ・ドメインAdminin\xxx-adm
    ・ローカルAdminin\administrator

    また、以下、ひとつ面白い挙動に気付きました。
    3)タスクタブで以下の設定をしましたが、
    ・ログオンしている場合にのみ実行する([実行する]がオンになっている場合)
    :ブランク(チェックしない)
    ・実行する(スケジュールされたタスクは指定の時間に実行されます)
    :チェックを入れる

    たまたま同サーバへログオンしている時間が、
    タスク実行時(丁度14:00)だったのですが、
    その際は、以下の通り、綺麗に自動実行されました。

    "TEST.job" (TEST.vbs)
     開始 2010/08/05 14:00:00
    "TEST.job" (TEST.vbs)
     完了 2010/08/05 14:02:12
     結果: タスクは次の終了コードで完了しました: (0).
    [ ***** 一番最近のエントリはこの行より上にあります ***** ]

    タスクタブでの先の設定が効いておりません。

    何らかサーバ側のレジストリ設定等が狂っているのでしょうか?
    この点がこの度の原因では? と おぼろげに感じています。

    2010年8月5日 5:15

回答

  • suq009wshch さん、こんにちは。
    フォーラムオペレーターの三沢健二です。

    少し気になったのですが、タスクの設定やバッチファイルの処理の中でネットワークドライブは使用されていませんか?

    また、バッチファイルの保存場所はどこになっていますか?

    「タスクは次の終了コードで完了しました: (1)」 は指定したバッチファイルが見つからなかった場合などにも記録されるエラーになります。
    もし、共有フォルダ上に保存されているバッチファイルを指定している場合には、ローカル上に保存して再度お試しください。


    他には、バッチファイルが全く実行されていないのか、バッチファイルは実行されたが処理の途中で問題が発生したのか、などを切り分ける必要があると思います。

    下記のようなシンプルなバッチファイルを作成し、実行されるかを確認してください。
    (本番用のバッチファイルにも、処理の開始時や処理の合間、処理の終了時に下記のようなデバッグ用の処理を追加された方が良いと思います)

    ---
    echo start %DATE% %TIME% >> c:\task.txt
    echo end %DATE% %TIME% >> c:\task.txt
    ---


    追加のご質問がある場合には、可能であればバッチファイルの中身(処理の内容)を記載いただければと思います。


    それでは、こちらの情報が少しでもお役にたてれば幸いです。

    ______________________________________
    マイクロソフト株式会社 フォーラム オペレーター 三沢健二

    • 回答としてマーク 服部清次 2010年8月19日 2:54
    2010年8月12日 3:11
    モデレータ

すべての返信

  • suq009wshch さん、こんにちは。
    フォーラムオペレーターの三沢健二です。

    少し気になったのですが、タスクの設定やバッチファイルの処理の中でネットワークドライブは使用されていませんか?

    また、バッチファイルの保存場所はどこになっていますか?

    「タスクは次の終了コードで完了しました: (1)」 は指定したバッチファイルが見つからなかった場合などにも記録されるエラーになります。
    もし、共有フォルダ上に保存されているバッチファイルを指定している場合には、ローカル上に保存して再度お試しください。


    他には、バッチファイルが全く実行されていないのか、バッチファイルは実行されたが処理の途中で問題が発生したのか、などを切り分ける必要があると思います。

    下記のようなシンプルなバッチファイルを作成し、実行されるかを確認してください。
    (本番用のバッチファイルにも、処理の開始時や処理の合間、処理の終了時に下記のようなデバッグ用の処理を追加された方が良いと思います)

    ---
    echo start %DATE% %TIME% >> c:\task.txt
    echo end %DATE% %TIME% >> c:\task.txt
    ---


    追加のご質問がある場合には、可能であればバッチファイルの中身(処理の内容)を記載いただければと思います。


    それでは、こちらの情報が少しでもお役にたてれば幸いです。

    ______________________________________
    マイクロソフト株式会社 フォーラム オペレーター 三沢健二

    • 回答としてマーク 服部清次 2010年8月19日 2:54
    2010年8月12日 3:11
    モデレータ
  • suq009wshch さん、

    こんにちは。
    フォーラム オペレーターの服部 清次です。

    suq009wshch さんがこちらの質問を投稿されてから少し経ちましたが、
    弊社の三沢健二の回答はご確認いただけましたでしょうか?

    suq009wshch さんの現在の状況が気になるところなのですが、、、
    今回、参考情報として弊社の三沢の回答を役立てていただけるのではないかと思いましたので、
    勝手ながら、ひとまず私の方で [回答としてマーク] させていただきました。

    もし suq009wshch さんの疑問がまだ解消されていないようでしたら、
    お気軽に [回答としてのマークの解除] をクリックして質問を続けてください。

    なお、その際には弊社の三沢のアドバイスにもありましたように、
    suq009wshch さんが作成されたバッチ ファイルを教えていただけますと、
    他の回答者の方々も回答しやすくなるのではないかと思います。

    今後とも、TechNet フォーラムをよろしくお願いします。
    それでは、また。


    __________________________________________________
    マイクロソフト株式会社 フォーラム オペレーター 服部 清次

    2010年8月19日 2:56