過去の桐井戸端BBS (桐ver.8)
27484 共有ファイルを共有しようとすると共有管理情報フォルダのエラーなどがでて共有で開けない 島尾 2004/08/26-10:14
桐8SP7を使用しています。
共有PC(IPアドレス 192.168.0.X 名称 共有PC)にTBLファイルをおいて、
別のクライアント2台から同じTBLファイルを共有するとします。
その場合
クライアントの共有管理フォルダはすべて同じ X:\共有 などいます。
クライアントAの共有ドライブXの設定は \\192.168.0.x\共有領域
クライアントBの共有ドライブXの設定は \\共有PC\共有領域

クライアントAもBも全く同じ位置を指し示しているし、ファイルを開くときも
ドライブXに対して開くのに、共有しようとすると共有管理情報フォルダのエラーなどがでて共有で開けません。
このエラーで非常に苦しんでおります。
おなじドライブ名に対して作業をしているのに、桐は内部で別のPCと勘違いしてしまうのでしょうか?
27485 Re:共有ファイルの設定によりで共有できない。 島尾 2004/08/26-10:21
記事番号27484へのコメント
補足ですが、解りやすく説明すると
UNCパスにIPアドレスとコンピュータ名を使った場合だと
同じファイルを示していてもエラーになってしまいます。

\\コンピュータ名\共有名
\\192.168.0.XXX\共有名
27489 Re:共有ファイルの設定によりで共有できない。 hidetake 2004/08/26-10:50
記事番号27485へのコメント
>UNCパスにIPアドレスとコンピュータ名を使った場合だと
>同じファイルを示していてもエラーになってしまいます。
>\\コンピュータ名\共有名
>\\192.168.0.XXX\共有名

これは致し方ない事では無いですか?

桐はデータベースという一つのまとまりを持ったものはなく
すべて1つ1つのファイルで成り立っているのですが、
その共有管理には共有管理情報内に UNC で記録して管理しています。
KIRI8.FSC なり KIRI9.FSC の内部を覗いてみて下さい。
(だから別に通常はドライブ名を統一する必要もありません)

物理的にはどうかは別として内部的には
\\コンピュータ名\共有名 ≠ \\192.168.0.XXX\共有名
なのです。
これは、Windows の表示でもそうで、割り付けたそのままが Windows 自体でも表示されますよね!

では、IPアドレスはすべて名前解決して、別名で管理すべきか?とか言えば、
でも物理的には同じ PC でも複数の IPアドレスが割り付けてあったり、はたまた、
それには異なった別名がつけてあったらと、考えたら桐がありません。

この辺は利用者側が統一した方式でマップすべきではないでしょうか!?

27490 Re:共有ファイルの設定によりで共有できない。 うにん 2004/08/26-10:52
記事番号27485へのコメント

>>クライアントの共有管理フォルダはすべて同じ X:\共有 などいます。

HELPには「共有管理情報ファイルのネットワークディレクトリだけはドライブに
割り当てておく必要があります。」なんて書いてありますが、実際はUNCで管理しているので

>UNCパスにIPアドレスとコンピュータ名を使った場合だと
>同じファイルを示していてもエラーになってしまいます。
>
>\\コンピュータ名\共有名
>\\192.168.0.XXX\共有名

当然そうなってしまいます。

27492 Re:共有ファイルの設定によりで共有できない。 島尾 2004/08/26-11:20
記事番号27489へのコメント
お返事ありがとうございます

統一したいんですが、Windows98の場合、どういうわけかIPアドレスでマッピングしても
コンピュータ名に勝手に変わってしまう場合が有ります。
何度変更しても知らない間に元に戻ってしまう事が有るようです。
OSで制御できれば一番良いのですが。
それかUNCパスを取得できれば、UNCパスが異なる場合起動させないなどの
手段がとれるのですけど。

27493 Re:共有ファイルの設定によりで共有できない。 島尾 2004/08/26-11:28
記事番号27492へのコメント
追伸
ルーターで仕切られた空間だと名前でマッピング出来ないため、
(DNSは立てていない&hostsなどを管理するのが大変なので)
全PCのドライブのUNCを\\IPアドレスで行いました。
しかしWindows98系列はIPでマッピングしても、名前解決できると
自動的にPC名にUNCを変えてしまうことが有るらしく、勝手に変わってしまうと、
桐の共有ファイルがたちまち共有不可になってしまう次第です。
27494 Re:共有ファイルの設定によりで共有できない。 hidetake 2004/08/26-11:30
記事番号27492へのコメント
>それかUNCパスを取得できれば、UNCパスが異なる場合起動させないなどの手段が
>とれるのですけど。

「#ローカルドライブ」関数を使うと
#ローカルドライブ("\\コンピュータ名\共有名")
#ローカルドライブ("\\192.168.0.XXX\共有名")
で、どちらでマップしているかわかると思いますけど?
27496 Re:共有ファイルの設定によりで共有できない。 hidetake 2004/08/26-11:42
記事番号27493へのコメント
>追伸
>ルーターで仕切られた空間だと名前でマッピング出来ないため、
>(DNSは立てていない&hostsなどを管理するのが大変なので)
>全PCのドライブのUNCを\\IPアドレスで行いました。
>しかしWindows98系列はIPでマッピングしても、名前解決できると
>自動的にPC名にUNCを変えてしまうことが有るらしく、勝手に変わって
>しまうと、桐の共有ファイルがたちまち共有不可になってしまう次第です。

どこの手間を惜しみ、どこを楽するか?って言う事なのでしょうけど・・・

こういう場合、WINS サーバをおったてるのが一番簡単なのでしょうけど!

近頃は Samba を利用した「簡易NAS」も非常に低価格でおもしろいわけだけれど、
せっかく Samba を使っているのだから WINS サーバも有効にすればと私なんぞは思いますね!
で、ついでに PPPTP サーバも有効にしてと! 追求すればきりは無いですけれど・・・ (^^;


>しかしWindows98系列はIPでマッピングしても、名前解決できると
>自動的にPC名にUNCを変えてしまうことが有るらしく、勝手に変わって

これって必ず? そうでなければ、ログオンスクリプトで毎起動時設定する方法もあるでしょうし?
27499 Re:共有ファイルの設定によりで共有できない。 島尾 2004/08/26-12:41
記事番号27494へのコメント
hidetakeさん

>>それかUNCパスを取得できれば、UNCパスが異なる場合起動させないなどの手段が
>>とれるのですけど。
>
>「#ローカルドライブ」関数を使うと
>#ローカルドライブ("\\コンピュータ名\共有名")
>#ローカルドライブ("\\192.168.0.XXX\共有名")
>で、どちらでマップしているかわかると思いますけど?

なるほど。
この辺で対処したいと思います。
どうもありがとうございました
27503 Re:共有ファイルの設定によりで共有できない。 hidetake 2004/08/26-15:26
記事番号27499へのコメント
わざわざ桐でこのような判別で使えないようにするぐらいだったら
その時に「再マップ」と言う方法もあるだろうけど、でもその時に
既に接続されているファイル(桐以外のアプリでも)があったら面倒だろうから、
同じ事をログオン時にでもチェックして IPアドレスでのマップで無い場合は、
IPアドレスで再マップという方法もあるのだと思うのですが?


# WINS の話は随分以前に RAS の関係で尾形さんの質問で書いた事
# もあったけど、その時の話は過去ログには記載されていないの
# ですね・・・ (;_;)
# その時は更に面倒を省いて NetBEUI を有効にする事により名前
# 解決をさらにラクチンに解決するという方法で対処されたと思い
# ますが・・・


27507 Re:共有ファイルの設定によりで共有できない。 島尾 2004/08/26-17:31
記事番号27503へのコメント
お返事ありがとうございます。

>同じ事をログオン時にでもチェックして IPアドレス

私の知識不足ですが、ログオン時にUNCをチェックして再マップさせるが解りませんので、
とりあえず桐でチェックをかけて使えないようにする事にします。
WINSサーバーなどの方法も有るそうなので、その辺も含めてもう少し勉強したいと思います。
上記エラーに限らず、利用者が勝手にマップを変えたり、ショーカットをUNCに変えてしまったりと、
よくその手の問題が起き、いくら注意をしてダメなので、
#ローカルドライブでチェックする方法、大変役立ちました。
どうもありがとうございます。
27508 Re:共有ファイルの設定によりで共有できない。 hidetake 2004/08/26-18:37
記事番号27507へのコメント
>>同じ事をログオン時にでもチェックして IPアドレス
>
>私の知識不足ですが、ログオン時にUNCをチェックして再マップさせるが解りませんので、
>とりあえず桐でチェックをかけて使えないようにする事にします。

今どきの VBS でスマートにやる方法もあるでしょうが、旧来の方法の
バッチファイルでやる場合は grep などのツールが必要になるけど
一番簡単には次のような感じで・・・

------------------------------------------------------------
@echo off
net use | grep X: > NUL
IF ERRORLEVEL 0 IF NOT ERRORLEVEL 1 goto check
IF ERRORLEVEL 1 IF NOT ERRORLEVEL 2 goto map

:check
net use | grep X: | grep 192.168.0.X > NUL
IF ERRORLEVEL 0 IF NOT ERRORLEVEL 1 goto exit
IF ERRORLEVEL 1 IF NOT ERRORLEVEL 2 goto unmap
goto exit

:unmap
net use X: /delete

:map
net use X: \\192.168.0.X\共有領域

:exit
net use | grep X:
------------------------------------------------------------

net use コマンドのはき出す標準出力の結果を見て
処理するのですが
X: ドライブがマップされていなかったら再マップ!
マップされていたら、それが IPアドレスで記述して
あるかをチェックし、それが含まれていたら終了。
そうでなかったら、アンマップして再マップ!

こんなチェック自体も止めて、エラー無視でも必ず
アンマップして再マップすれば grep も必要なくなります。

grep.exe はいろいろありますし、マイクロソフトからも
今では無料で出ているやるにも含まれているハズです。
という事でありかは省略。 (^^;

まぁ〜、そんな感じで・・・ (^^ゞ

戻る