- ベストアンサー
ネットワークコピーで発生するエラーの原因と解決方法
- VB6を使用したファイルのネットワークコピー時に発生するエラーの原因と解決方法を解説します。
- エラー発生時にエクスプローラ上ではネットドライブが割り当てられていないことや、コマンドプロンプトでの net use による確認でもエラーが発生しないことなどを報告します。
- VBのコードを使用してネットドライブへの接続、ファイルのコピー、切断を行いながらエラーが発生することを説明します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
もしかしてActiveDirectoryに参加させ、ドメインアカウントで接続してますか? だとすると、 接続及びネットドライブマウントもnet useコマンドで実行し、 切断もnet useコマンドでやればうまく行くかもしれません。 ActiveDirectoryに参加したPCでドメインアカウントでログインした状態で接続すると、 net useではその接続が見えませんし、削除もできない可能性が高いです。 net useからは見えないが確かにセッションが確立しているかどうかは、 WshNet.MapNetworkDrive "Z:", "\\Svr\temp$", False, "administrator", "password" で接続した上で、ローカル側でnet useを実行して接続が表示されないことを確認する一方、 実機のコンソール(リモートじゃダメ)で、「コンピュータの管理」のセッションを観察するか、 コマンドプロンプトでnet sessionを実行し、セッションが存在することが確認できれば検証できると思います。 仮説としては WshNet.MapNetworkDrive "Z:", "\\Svr\temp$", False, "administrator", "password" で(net useで見えない)セッションが確立し、ネットドライブがマウントされ、 WshNet.RemoveNetworkDrive "Z:", False, True でネットドライブだけがアンマウントされるが、(net useで見えない)セッションは残るし、削除もできない。 です。
その他の回答 (1)
- Donotrely
- ベストアンサー率41% (537/1280)
もしかしたらネットドライブを切断しても接続は残っているのでは? 2回目やる前にコマンドプロンプトで net use で確認して下さい。 もし残っていたら接続も切るんでしょうね。 net use \\Svr\temp$ /delete(ちょっと怪しい) のコマンドラインを実行させて。 vbsならコマンドラインの実行のさせ方は知っていますが、VBは知りません。 ごめんなさい。
お礼
回答ありがとうございます。 一応質問内容にも書いていますが、エラー発生時にnet useでの確認は行ってみたんですが情報なしでした。 切断後に都度確認してみた方がよさそうですかねぇ・・・ ただ発生タイミング分からないので正直厳しそうというのが本音です。
お礼
ご丁寧な解説ありがとうございます。 ご指摘どおりActiveDirectoryに参加したPCを使用しておりますが、 ログインには端末のローカルアカウントを使用しています。 しかしながら、ドライブの接続切断ともにnet useを実行することで解決できました。 また、接続後は数秒の待機が必要だったようです。 (接続後即コピーを行うと、パスを見つかられない状態になっていました。) Donotrely様のアドバイスにより解決でき非常に助かりました。 ありがとうとうございました! 以下、改修後の状態 '接続 shell "command.com /c net use Z: \\Svr\temp$ パスワード Administrator" '5秒程待機 'コピー FS.CopyFile "コピー元パス", "Z:\", True '切断 shell "command.com /c net use Z: /delete"