[前の記事]« コマンドでファイルの所有者を変更できないか
[次の記事]rshでUNIXのシェルを動かすとEnterを押すまで進まない »

関連オンラインソフト配布サイト:
Vector>ダウンロード(top) |>MS-DOSまたは汎用 | >WindowsVista/XP/2000/NT

▲カテゴリー「NET USE」索引へ

NET USE では共有フォルダに接続できるのにvbsではできない

160.
NET USE では共有フォルダに接続できるが、vbsではできない。なぜ?
2004年12月15日(水) 09時55分
電話君
●DOS/Windowsのバージョン↓
NT 4.0 SP6
(以下ご自由に質問文をお書きください)
DOSというより、VBSの質問ですが。。

クライアントから、サーバーの共有フォルダにファイルをコピーする処理を実現しようとしています。

具体的手順は、共有フォルダをネットワークドライブにマウントし、コピー処理が終了したらそのネットワークドライブをアンマウントして処理を終了させます。
その際の、ネットワークドライブのマウントがバッチファイルではできるのですが、VBSだとうまくいきません。
(WSH のヴァージョンは 5.6です)

まず、バッチファイルのコード

net use Z: (共有フォルダのパス) password /USER:user ..■

つぎに、VBSのコード

Set objNetwork = CreateObject("WScript.Network")
 objNetWork.MapNetworkDrive Z:, (共有フォルダのパス), , user, password ..■

■では、正常にマウントできるのですが、■では接続に失敗してしまいます。
こういった現状の原因として考えられることがありますでしょうか?

ご存知の方、ご教授下さい。
165.
Re:NET USE では共有フォルダに接続できるが、vbsではできない。なぜ?
2004年12月15日(水) 19時50分
otn
>Set objNetwork = CreateObject("WScript.Network")
> objNetWork.MapNetworkDrive Z:, (共有フォルダのパス), , user, password ..■

この通り書いてるとすると、Z: のところでコロンが文の区切りと見なされて、その次の文がいきなりカンマから始まるのでコンパイルエラーになると思いますが、" " が漏れているのはタイプミスでしょうか?実際に " " 無しで書いちゃってるんでしょうか?

ちゃんと objNetWork.MapNetworkDrive "Z:","\\host\share",,"username", "password" のように書いていてエラーだとすると、エラーメッセージはどんなでしょうか?
167.
Re2:NET USE では共有フォルダに接続できるが、vbsではできない。なぜ?
2004年12月16日(木) 10時41分
電話君
>実際に " " 無しで書いちゃってるんでしょうか?

失礼しました。記述ミスです。
実際のコードは、すべて""で区切った値を文字列変数に格納してから指定しています。

こちらの状況把握に誤りがあったので、少々長いですが、正確に状況を記述させてください。

まず、batファイルのコード
 net use Z: \\(IP)\(共有フォルダ) pass /USER:user ..■
 move %filename% Z:\sub1\sub2\sub3                 ..■

次にvbsのコード
 objNetWork.MapNetworkDrive "Z:", "\\(IP)\(共有フォルダ)\sub1\sub2\sub3", , "user", "pass" ..■

 fso.moveFile filename, "Z:\"

のように、batは、■、■でコピー先のパスを分けて指定してあり、vbsはコピー先のフルパスをいきなり■でマウントしようとしています。

実際にエラーが起きているのは、■のコードで、Err.Description のメッセージは、
"ネットワーク名が見つかりません。"
となっています。

ただ、同じSP、ネットワーク構成のNT端末で、■のコードでマウントがうまくいく場合もあるから混乱しています。

さらに付け加えると、エクスプローラでフルパスを直打ちすると、
"パスが見つかりません"のエラーが表示されます。
ただ、\\(IP)\(共有フォルダ) を直打ちしても同様のエラーが出て、\\(IP)だけを直打ちすると、ユーザー名とパスワードを求められます。
それを入力すると、sub1\sub2\sub3、のフォルダすべて参照できるようになります。

--
長くなりましたが、要は、VBSファイルでマウントを成功・失敗することに、何が影響しているのでしょうか?ということです。

取り留めないようですが、なにとぞよろしくお願いします。
169.
Re3:NET USE では共有フォルダに接続できるが、vbsではできない。なぜ?
2004年12月16日(木) 16時20分
otn
>実際にエラーが起きているのは、■のコードで、Err.Description のメッセージは、
>"ネットワーク名が見つかりません。"
>となっています。

>ただ、同じSP、ネットワーク構成のNT端末で、■のコードでマウントがうまくいく場合もあるから混乱しています。

>さらに付け加えると、エクスプローラでフルパスを直打ちすると、
>"パスが見つかりません"のエラーが表示されます。
>ただ、\\(IP)\(共有フォルダ) を直打ちしても同様のエラーが出て、\\(IP)だけを直打ちすると、ユーザー名とパスワードを求められます。
>それを入力すると、sub1\sub2\sub3、のフォルダすべて参照できるようになります。

スクリプトの書き方の問題では無さそうですね。vbsでのエラーとエクスプローラーでのエラーは同じ現象っぽい。ここで回答が得られなかったら、Windowsネットワーク系の掲示板などで質問してみてはどうでしょうか。
汎用の質問掲示板だと、http://www.okweb.ne.jp/ とか。

(1) net use だとうまく行く
(2) explorerだと"パスが見つかりません"、\\IPだけだとOK
(3) ドメインかワークグループか
(4) うまく行くPCとだめなPCとサーバーは同一サブネットか、ルーター越しか等のネットワーク環境
等が質問時のポイントでしょうか。あと、net view \\IP だとどうなりますか?

原因究明はさておき回避策でいいならvbsからnet.exeを呼べば良いかと思います。
 
 


カテゴリー「NET USE」索引へ

 

カテゴリー一覧

FPCU/FPCDIY QUICK LINK online
この上の各ジャンル名をクリックすると、下のウィンドウが切り替わります▼


=リンク集のインデックスはこちら=

資料書籍

About

2004年12月15日 15:13に投稿されたエントリーのページです。

ひとつ前の投稿は「コマンドでファイルの所有者を変更できないか」です。

次の投稿は「rshでUNIXのシェルを動かすとEnterを押すまで進まない」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

This site is powered by Six Apart
Movable Type 3.33-ja
このブログについて | 運営:有限会社メディアポート