- PR -

IPによるネットワークドライブ接続について

1
投稿者投稿内容
ターキッシュ
大ベテラン
会議室デビュー日: 2003/01/15
投稿数: 126
投稿日時: 2005-05-10 12:07
いつも勉強させていただいております。

現在、WIN32APIのWNetAddConnection2を使用して、ネットワークドライブ
接続を行っているのですが、ネットワークの設定上マシン名を名前解決
できないマシンで起動することになりました。
HOSTSファイルを編集すれば問題無いことは確認したのですが、

\\アクセスするマシン名\共有ドライブ ではなく
\\アクセスするマシンのIPアドレス\共有ドライブ

のように、指定して接続する方法はないものでしょうか?
ご存知の方いらっしゃいましたら、よろしくご指導お願いします。
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2005-05-10 12:31
ん?

そのまま「\\アクセスするマシンのIPアドレス\共有ドライブ」と指定すればつながるはずですけど・・・。それとも何かエラーになりました?

もしかして名前解決できないのではなく、NETBEUI接続とか、IP使って無いと言う話なんでしょうか?

[ メッセージ編集済み 編集者: 甕星 編集日時 2005-05-10 12:35 ]
ターキッシュ
大ベテラン
会議室デビュー日: 2003/01/15
投稿数: 126
投稿日時: 2005-05-10 13:23
甕星様ご返答ありがとうございます。

私のソースが悪いのかもしれません。
ネットを参照して、C#で下記のような関数で接続していますが、
「pDomain + "\\" + pUser」
のpDomainの部分にマシン名を入れてやらなければうまくいき
ませんでした。
ちなみにこのマシンはどこのドメインにも属していませんので、
マシン名\\ユーザ名になります。

public void ConnectAs (string pShare, string pDomain, string pUser, string pPwd){
int err = 0;
string sUser = pDomain + "\\" + pUser;
string error_msg;
int dwFlags = 0;
NETRESOURCE [] nr = new NETRESOURCE [1];
nr[0].lpRemoteName = pShare;
nr[0].lpLocalName = ""; //mLocalName;
nr[0].dwType = 1; //disk
nr[0].dwDisplayType = 0;
nr[0].dwScope = 0;
nr[0].dwUsage = 0;
nr[0].lpComment = "";
nr[0].lpProvider = "";
err = WNetAddConnection2A (nr, pPwd, sUser, dwFlags);
if (err != 0)
{
      error_msg=err.ToString();
throw new Exception ("Unable to connect to " + pShare
+ ". Error=" + err.ToString());
}
string s=err.ToString();
}

何かご指摘の点ございましたら、よろしくお願いします。

甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2005-05-10 20:04
引用:

ターキッシュさんの書き込み (2005-05-10 13:23) より:
ネットを参照して、C#で下記のような関数で接続していますが、
「pDomain + "\" + pUser」
のpDomainの部分にマシン名を入れてやらなければうまくいき
ませんでした。
ちなみにこのマシンはどこのドメインにも属していませんので、
マシン名\ユーザ名になります。


先の質問ではファイルサーバーのサーバー名の変わりにIPアドレスで指定したいと言っていましたが、実際の質問はドメイン名を指定せずにドメイン認証を行いたいと言うことですか?それって・・・・たぶん不可能なんじゃないかなぁ・・・。

仮にドメイン名ではなく、ファイルサーバーのローカルアカウントで接続すると言う話なら、"string sUser = pUser;"とすればつながるハズですよ。
1

スキルアップ/キャリアアップ(JOB@IT)