WNetAddConnection2でエラー1219が発生する理由

このQ&Aのポイント
  • Microsoft Visual C++ 6.0で、パスワード入力の必要なネットワークリソースのログインを行うためにWNetAddConnection2()関数を使用しました。
  • しかし、コンピューター名をそのまま設定するとエラー1219が発生しました。
  • この問題はファイアウォールなどのネットワークの設定に関連している可能性があります。
回答を見る
  • ベストアンサー

WNetAddConnection2がエラーなぜ?

Microsoft Visual C++ 6.0 で、パスワード入力の必要なネットワークリソースのログインを行うようにするため、 WNetAddConnection2() を使ってみました。様々なサンプルコードを参考にプログラムを書きましたが、エラー1219が返されます。 自分のコンピューター:"MyComputer1" ユーザー認証によりログインしたいネットワーク上のコンピューター名と共有名  コンピューター名 : "ServPC02"  共有名 : "ShareData"  ユーザー名 : "Admin"  パスワード : "pass" こんな感じでプログラムを書きました。 class CMyTest {   public:     void Open(); }; void CMyTest::Open() {   NETRESOURCE nr ;   ZeroMemory(&nr , sizeof(NETRESOURCE) );   nr.dwType = RESOURCETYPE_DISK ;   nr.lpLocalName = NULL ;   nr.lpRemoteName = _T("\\\\ServPC02\\ShareData") ;   nr.lpProvider = NULL ;   DWORD dwResult = WNetAddConnection2(&nr , _T("pass") , _T("admin") , 0) ; }  戻り値は、dwResult = 1219 です。  ここで、コンピューター名 "ServPC02"のIPアドレスを gethostbyname() 関数により取得し、 nr.lpRemoteName = _T("\\\\192.168.2.100\\ShareName") ; としてWNetAddConnection2() を実行すると成功します。戻り値は0になり、この共有リソースの中にあるフォルダを検出することが可能になります。  なぜこのような現象が起こるのでしょうか?  IPアドレスを取得してネットワークのユーザー認証を行わせる方法を取ればいいけれど、コンピューター名をそのまま設定するとエラーになる理由が知りたいです。  ファイアウォールの問題など、プログラミング以外の部分の問題でしょうか。  OSは、Windows Vista (32bit)です。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.1

使ったことないのでなんとも言えませんが… >戻り値は、dwResult = 1219 です。 errlookによると… 「同じユーザーによる、サーバーまたは共有リソースへの複数のユーザー名での複数の接続は許可されません。サーバーまたは共有リソースへの以前の接続をすべて切断してから、再試行してください。」 だそうです。 http://msdn.microsoft.com/ja-jp/library/cc446983.aspx には戻り値としてERROR_SESSION_CREDENTIAL_CONFLICTは記載されていないんですよねぇ。 http://msdn.microsoft.com/en-us/library/windows/desktop/aa385413%28v=vs.85%29.aspx 英語のページだと戻り値が記載されていないもの(=Ohter)の場合はFormatMessage()で確認してや。 ってことになっているのでerrlook.exe使用したワケですが。 ログオンしているユーザー名とは別に既にコネクション張られている…とか? # 一定時間の無アクセスで切断される…とか??? > IPアドレスを取得してネットワークのユーザー認証を行わせる方法を取ればいいけれど、コンピューター名をそのまま設定するとエラーになる理由が知りたいです。 ここだけ見るとコンピュータブラウザ関係ですかねぇ…。 とはいえ、ネットワークコンピュータの一覧に出ていなくても名前解決ができれば接続は可能かと思われますが……。

関連するQ&A

  • WinXPとWin98初期型の共有について

    WinXPとWin98初期型を共有したところ、XPから98は共有可能ですが、98からXPの共有フォルダを見に行くとパスワードがもとめられます。(IDはもとめられない) そこでadminパスやユーザーのパスワードを入力しても拒否られてしまします。 _________________________________________ 下記のダイアログが表示されます ネットワークパスワードの入力 リソース \\コンピュータ名\IPC$ パスワード [       ] _________________________________________ ちなみにXPは 共有フォルダのセキュリティはeveryoneフルコントロールをしています。 NetBios over TCP/IPを有効にしています。 ご回答をお願いいたします。

  • 共有しようとすると、エラーが出る

    WindowsMeに保存してるフォルダを、同じルーターで繋げているVistaから見れるようにしたいのですが「共有」がうまくできまません。 Meで、該当のフォルダを右クリック→「共有」をクリックすると、 「共有リソースを作成しましたが、ユーザーにアクセス許可を与えていません。アクセス許可を与えますか?」のメッセージが出ます。 ここで、「はい」をクリックすると、以下のメッセージが出ます。 「ネットワークエラーが原因でユーザーの一覧が表示できません。後からもう一度やりなおすか、ヘルプをクリックしてネットワークリソースの共有に関する情報を参照してください。」 ユーザーの設定(一人だけ)はしてみたのですが、状況がかわりません。 どのようにしたら、いいのか教えていただけないでしょうか?

  • 2003とMeでファイル共有

    こんにちは、honiyonです。  WindowsMeからWindows server2003の共有フォルダを覗きたいと思います。  Pingはお互いに通っており、マイネットワークからお互いのコンピューターが見えています。  2003側には、Mwで使用しているユーザー名、パスワードをAdmin権限で登録しています。  この状態ですが、Meでマイネットワークに表示されている2003のコンピューターのアイコンをクリックすると、「リソースへのアクセス許可がありません」と表示されます。  DOSプロンプトから net useを使用してみましたが、「権限がありません」と表示され、マウントが出来ませんでした。  因みに同ネットワーク内にWin2000がありますが、このPCからMeに入れました。2003へも登録したMeのユーザー名、パスワードで共有フォルダを覗く事が出来ました。  今同じ手順でWin98でも確認したところ、同様の症状となりました。  しかしWin98で使用しているユーザー名、パスワードを登録したWin2000機の共有フォルダは閲覧出来ました。  思い当たる原因がありましたら、ご教授ください(..

  • クロスケーブルで接続時のエラー

    ノートPCとデスクトップPCをクロスケーブルでLan接続し、フォルダの共有を したいのですが、ノートPCからデスクトップの共有フォルダを見ようとすると・・・ 「\\Desktopにアクセスできません。このネットワークリソースを使用するアクセス許可がない可能性があります。 アクセス許可があるかどうかこのサーバの管理者に問い合わせて下さい。 ログオン失敗:要求された種類のログオンは、このコンピュータではユーザに許可がされていません。」 と、エラーメッセージが表示されます。 また、デスクトップPCのイベントログには ------------------------------------------------ イベントの種類: 失敗の監査 イベント ソース: Security イベント カテゴリ: ログオン/ログオフ イベント ID: 534 日付: 2005/12/25 時刻: 10:40:10 ユーザー: NT AUTHORITY\SYSTEM コンピュータ: DESKTOP 説明: ログオンの失敗: 原因: ユーザーは、このコンピュータでは要求された 種類のログオンは認められていません。 ユーザー名: XXXXX ドメイン: NOTE ログオンの種類: 3 ログオン プロセス: NtLmSsp 認証パッケージ: MICROSOFT_AUTHENTICATION_PACKAGE_V1_0 ワークステーション名: NOTE ----------------------------------------------- と、エラーログがでていました。 因みにデスクトップPCからはノートPCの共有フォルダを見ることができます。 どうすれば、ノートPCからデスクトップの共有フォルダを見れるようになるのでしょうか??

  • 同じ配列処理

    認証プログラムを作っています。 PHPファイル内にユーザー名、パスを定義してます。 $usersと同じ変数に入れ認証処理のプログラムは変えたくないのです。 CSVのカンマ区切りで外部ファイルとして、読み込み$usersと同じ扱いにしたい。 PHPファイル内(認証処理は問題なく動作) $users = array( "admin" => "pass", "guest" => "guest" ); 今後は下記のようにしたいです。 CSVのカンマ区切りで外部ファイル(log.dat) admin,pass guest,guest PHPの処理 $lines = @file($userfile); for($i=0; $i<count($lines); $i++){ list($id, $pass) = explode(",", trim($lines[$i])); $users[$i] = array($id, $pass); } うまくできません。

    • ベストアンサー
    • PHP
  • Win-XPのネットワーク接続を初期化したいです。

    Win-XPのネットワーク接続を初期化したいです。 win-xp -> win-server PCからあるサーバのディスクに一度接続しました。 PCの初期セット時に何か必要があって、サーバのadmin権限で一度接続したようですが、その接続が残っていて、見てはいけないところが見える状態になっています。 マイネットワークの下にあるショートカット(みたいなヤツ)は全部消しましたし、 regeditで、そのユーザIDを検索して残存していたところは消しました。 でも、サーバのadminのログイン情報がどこかに残っています。 見てはいけないところより下位に共有ドライブがあり、そこはアクセスして良いのですが、そこにアクセスしても自分のIDではなく、サーバのadminでアクセスしているかのようになっています。 server側でnet sessionコマンドで確認すると、 コンピュータ名は自分のPC名でユーザ名はサーバのadminになっています。 サーバのadminで接続した経験の無い別のPCでは、 コンピュータ名は自分のPC名でユーザ名は自分のユーザになっています。 過去に一度接続したユーザの権限を忘れさせるにはどうすれば良いですか?

  • WindowsのネットワークにMacをつなぎたい!!

    タイトル通りです。 現在WindowsNT4.0のネットワークを利用しております。 最近、社員の一人がMacを購入し、リソースを共有したいというのですが・・・ ユーザー認証等にどう対応したらいいのでしょうか? どなたかお願いします!!

  • ドメインに参加できないPCがあります…

    現在あるワークグループで構成されていたネットワークをクライアント/サーバーシステムに移行作業している途中です。 大体のPCはすんなり設定がいったのですが、3,4台のみ設定がうまくいかなく、大変困っております。 マイコンピュータのプロパティからコンピュータ名の変更をしようとすると、管理者権限のあるIDとパスワードを要求されます。要求どおり入力すると 『同じユーザーによる、サーバーまたは共有リソースへの複数のユーザー名での複数の接続は許可されません。サーバーまたは共有リソースへの以前の接続をすべて切断してから、再試行してください。』 というエラーメッセージが表示されドメイン参加できません。 なんとかこの不具合を解消できる方いらっしゃらないでしょうか? よろしくお願いします。 設定情報は コンピュータ名:( (仮) ABCDE001~050 ) ユーザー名もコンピュータ名と同じものを使用しています。 (ここの設定が良くないのかと思うのですが、他のコンピュータはすんなり設定できてますし…) よろしくお願いします。

  • アクセス制限・ディレクトリゲイトの書込エラー

    会員認証システムディレクトリゲイトのサイトではサポート応答なしでしたので、お使いの方がいらっしゃいましたら教えてください。http://webpower.jp/websofts/password_protection/directory_gate/ FTPアップロード後、admin.cgiからは新規ユーザー登録ができます。しかし、user.cgiからは新規ユーザー登録できません。エラーメッセージは、「ユーザーファイルを読み込みオープンに失敗しました。」ディレクトリのパス、パーミッションは正しく設定されております。リモート側のユーザーファイルを見てみると、adminで登録した新規ユーザーは、admin扱いではないadminユーザーになっており、user.cgiのセッションファイルは記録されていますが、ユーザー登録ができず、困っております。

    • 締切済み
    • CGI
  • ネットワークのコンピュータへのアクセス

    Windows7でローカルネットワークの他のコンピュータの共有フォルダにアクセス場面で、ユーザーとパスワードが求められることがあります。 このようにユーザー名とパスワードを求められた場合には、ユーザー名とパスワードを入れるので、どのアカウントでネットワーク先にアクセスしているかを知ることが出来ます。 でもユーザー名とパスワードを求められないこともあります。 では、このときどのユーザー名でネットワーク先にアクセスしているか知る方法は無いでしょうか? また、求められない場合でも、ネットワーク先に複数のアカウントが設定されている場合に、Windows7が認証画面を出してこなくても自分でネットワーク先にアクセスするアカウントを指定してネットワーク先に接続する方法はありますか?