クライアントPCにバッチを作り、そこには下記のようにpsexecによってサーバ"SVSAMPLE_A"のデスクトップ上にあるバッチをリモート実行するように書いています。
psexec \\SVSAMPLE_A "c:/users/sample/desktop/samplescript.bat"
このSVSAMPLE_A上のバッチからはさらにvbsが呼び出され各種処理を実行します。
その中で、ネットワーク越しに別のサーバSVSAMPLE_Bからエクセルファイルをコピーしてくるような処理があります。
ここで、直接SVSAMPLE_Aを操作してsamplescript.batを実行した場合は、正常に上記のコピー処理が行われるのですが、クライアントからpsexecで同処理を実行するとfilecopyの行で下記のエラーが出て、コピーが正常終了しません。
以下、補足へ書きます。
ネットワーク越しのファイルのコピーでは、ネットワーク共有ドライブを使っているのではないでしょうか。
ローカルコンピューターに割り当てられたネットワーク共有のドライブ文字や、ユーザーのログオン時に割り当てられるネットワーク共有のドライブ文字は、認識されません。
http://itpro.nikkeibp.co.jp/article/COLUMN/20120601/399944/
エラー内容:
「○○(パス&ファイル名)にアクセスできません。次のいずれかの理由が考えられます。
・ファイル名またはパスが存在しません。
・ファイルが他のプログラムによって使用されています。
・保存しようとしているブックと同じ名前のブックが現在開かれています。」
ちなみにSVSAMPLE_Aはドメインに参加しており、SVSAMPLE_Bはワークグループです。
(ですが、普段GUI的にお互いファイルアクセスするときはユーザ、パスワードなどは求められません)
上記でも書いたとおり、SVSAMPLE_A上でバッチを実行するとうまくいくので、pxexecからの使用に問題がありそうな気はしていますが、ネットワークの話に明るくないためよくわかりません。
psexecを使用したときの一般的注意として、「UACを無効にする」などが書かれていましたが、これはリスクを伴うと思うので対応策の選択肢から除外してます。
何か解決策はありますでしょうか?
宜しくお願い致します。
というのはリモートデスクトップなどでしょうか
クライアントPC上のユーザーと異なる場合明示的に実行ユーザーを指定する必要があると思います
http://www.atmarkit.co.jp/ait/articles/1205/11/news147.html
ちなみにわたしも参考にあげていただいた記事は読み、引数にユーザーとパスワードを指定することも試したのですが、結果は同じでした。