locked
タスク(バッチ)によるネットワークドライブ接続 RRS feed

  • 質問

  • 初めて投稿させていただきます。

    質問は、バッチによるネットワークドライブ接続の動作に関してです。

    server2003のタスクスケジューラーにて、ファイル転送(毎日定時)を行うために、以下のように構成しております。

    (前提条件) User:batuser(Administrators)

    1.ネットワークドライブ接続バッチ(net use x: \\serverA\[共有フォルダ」)

    2.ファイルコピーA (xcopy c:\logs x:\logs)

    3.ファイルコピーB (xcopy c:\file1 x:\files)

    4.ネットワークドライブ切断バッチ

    上記のように設定した場合、1.で設定したネットワークドライブレターを、2.以降のバッチ内で認識できないようで、

    すべてエラーとなってしまいます。

    上記では、xcopyの処理が2つですが、実際には、xcoyしたいフォルダが数十個あり、不定期に対象フォルダが変更、

    また実行時間も不定期に変更されるため、バッチを分けて作成およびタスクスケジューラで連続実行したいと考えております。

    バッチ間で、ネットワークドライブの情報を連携する方法はないのでしょうか?

    有識者に質問したところ、「Server2008では本構成でOKだが、Server2003では無理」と言われました。

    2003と2008ではタスクスケジューラの仕組みが変更されたのでしょうか?

    もし、server2003で不可能なら、今のうち(開発中)にserver2008へ変更したいと考えております。

    ご存じの方がいらっしゃいましたら、ご教授のほどよろしくお願いいたします。

    2010年6月7日 17:04

回答

  • それが何故できないのかについては私には分からないのですが、少し方法を変えれば同じ結果は得られるような気もします。


    たとえば「ネットワーク接続バッチ」をタスクに登録するのをやめて、ファイルコピーのバッチの先頭に、
    CALL ネットワークドライブ接続バッチ
    の1行を追加し、最後にネットワークドライブを切断する。
    (もし複数のファイルコピーが同時に動作する可能性があるのであれば、ネットワークドライブ接続や切断時のエラー処理を考慮する必要がありますが・・・)



    また、たぶん変更箇所を少なくするためにネットワークドライブを使われているのだと思いますが、ネットワークドライブを使わなければスムーズに動作するのではないでしょうか。

    ファイルコピーバッチの例
    SET DEST="\\serverA\共有フォルダ"
    xcopy c:\logs %DEST%\logs
    xcopy c:\xxx %DEST%\xxx
    (必要に応じてSETの部分を別のバッチにまとめCALLすることもできると思います)

    • 回答としてマーク 三沢健二 2010年6月9日 1:28
    2010年6月8日 7:07

すべての返信

  • それが何故できないのかについては私には分からないのですが、少し方法を変えれば同じ結果は得られるような気もします。


    たとえば「ネットワーク接続バッチ」をタスクに登録するのをやめて、ファイルコピーのバッチの先頭に、
    CALL ネットワークドライブ接続バッチ
    の1行を追加し、最後にネットワークドライブを切断する。
    (もし複数のファイルコピーが同時に動作する可能性があるのであれば、ネットワークドライブ接続や切断時のエラー処理を考慮する必要がありますが・・・)



    また、たぶん変更箇所を少なくするためにネットワークドライブを使われているのだと思いますが、ネットワークドライブを使わなければスムーズに動作するのではないでしょうか。

    ファイルコピーバッチの例
    SET DEST="\\serverA\共有フォルダ"
    xcopy c:\logs %DEST%\logs
    xcopy c:\xxx %DEST%\xxx
    (必要に応じてSETの部分を別のバッチにまとめCALLすることもできると思います)

    • 回答としてマーク 三沢健二 2010年6月9日 1:28
    2010年6月8日 7:07
  • 早々のご返信ありがとうございます。

    仰せの通り、Callする(直接記述する)方法も考えたのですが、

    コピーの対象となるフォルダが頻繁に変更になることと、

    ドライブ文字のバッティングが発生した場合にエラーとなってしまうため、

    接続開始ジョブ完了後、コピー処理を複数行ない、最後に切断をしたいと考えております。

    投稿の後、Server2008の試用版を試したところ、今回の要件を満たすことができることがわかりました。

    ServerOSの変更はハードルが高いのですが、要件重視で考えて進めていこうと思っています。

    自分で検証もせずに投稿してしまい、貴重な時間を費やしご回答頂きましたこと、深く感謝いたします。

     

    2010年6月8日 15:10
  • since_server2003 さん、こんにちは。
    フォーラムオペレーターの三沢健二です。

    OMEGAT さん、いつもアドバイスありがとうございます。

    案内いただいたアドバイスが参考になられたようですので、勝手ながら [回答としてマーク] のチェックを付けさせていただきました。

    なお、下記 KB253821 に記載されている対処方法で解消される可能性もありますので、よろしければお試しいただければと思います。

    - 参考情報
    システム エラー 85"NET USE"コマンドを使用
    http://support.microsoft.com/kb/253821/ja


    それでは、今後とも TechNet Forum をよろしくお願いします。

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

    2010年6月9日 1:29