ネットワークコピーについて
VB6を使用したファイルのネットワークコピーを行っていますが
2回目以降の処理が上手くいきません。
(必ず2回目ではなく、3回目の時はあれば、4回目の時もあります。)
原因及び解決方法をご存知でしたらご教示願います。
■環境
Windows XP SP1(接続元、接続先、ともに)
■接続方法
目的の共有フォルダに対してネットワークドライブを割り当て、コピーを行っています。
接続する端末はコンボボックスによって選択可能で固定ではありません。
■発生エラー
2回目以降のドライブ接続処理で以下のメッセージ
「同じユーザーによる、サーバーまたは共有リソースへの複数のユーザー名での複数の接続は許可されません。
サーバーまたは共有リソースへの以前の接続をすべて切断してから、再試行してください。」
■確認事項
・エラー発生時にエクスプローラ上ではネットドライブは割り当てられていない。
・エラー発生時にコマンドプロンプトにて net use を実行すると「一覧にエントリが存在しません。」と表示される。
・コンピュータ名で接続し、エラー発生後にIPアドレスで接続は可能だが、こちらも数回の試行で同様のエラーが発生し、
コンピュータ名、IPアドレス両方での接続が不可能になる。
・ファイルのコピー処理を行わずに、ネットドライブの接続と切断を繰り返してもエラーは発生しない。
・当エラーが発生した場合はログオフしないかぎりと2度と接続できない。(30分程度放置しても状況変化せず。)
・切断処理の第2引数にTrueを設定しても変化なし。
・Windows XP SP2 では当事象が再現しない。
■VBのコード
'オブジェクト生成
Dim FS, WshNet
Set FS = CreateObject("Scripting.FileSystemObject")
Set WshNet = CreateObject("WScript.Network")
'接続
WshNet.MapNetworkDrive "Z:", "\\Svr\temp$", False, "administrator", "password"
'コピー
FS.CopyFile "コピー元パス", "Z:\", True
'切断
WshNet.RemoveNetworkDrive "Z:", False, True
お礼
遅くなりました。 いろいろ調べてたのですが、 netstat -aoというコマンドは WIN2000では対応していないようです。 あと、 >ソケットをオープンしたはいいが、クローズ処理をしないままに >プログラムが終了した為、OS上にその接続の為のソケットが残ったの >で次回のオープン処理で排他が掛かり拒否されたということは無い >だろうか? 確かに、その可能性は十分にあると思います。 自分が最初から作ったわけではないので、なかなか、原因がつかめず、 今回の質問に至ったわけです。 とりあえず、ポートの使用状況などを見ることができる ツールがありましたので、そちらで今回の場合は対応することに します。 ありがとうございました。