ADSIでドメインに接続するには

解決


さんぽ道  2009-06-04 07:16:21  No: 70264

ADSIを利用して、接続を試みたのですが
下記記述だと失敗してしまいます。
どこがまちがっているのでしょうか?

  CComBSTR strcon("LDAP://test.com");

  IADsContainer*  contain;
  HRESULT  resu = ADsGetObject(strcon, IID_IADsContainer,(LPVOID*) &contain);
  if (FAILED(resu)) {
    printf("ログインに失敗  ==[%s]\n",strcon);
  }

サーバ名は「testuse」で、ドメインが[test.com]です。
上記のロジックを実行すると、
「ログインに失敗  ==[L]」と出力されています。

開発環境は、Visual C++6.0になります。
お願いします。


aetos  2009-06-04 11:51:52  No: 70265

resu には何が返ってきているんですか?

ここ以下に書いてあるいずれかのコードが返ってきていますか?
http://msdn.microsoft.com/en-us/library/aa772195.aspx


さんぽ道  2009-06-04 23:16:38  No: 70266

resuには
800401e4が返却されてきました。
(インストールされてあり、OUの登録もユーザの登録もできているので
インストールエラーではないような気がするのですが...)

http://support.microsoft.com/kb/289891

ちなみにデバックは、以下のロジックにて排出しました。

  wprintf(L"An error occurred.\n  HRESULT: %x\n",hr);
    if (HRESULT_FACILITY(hr)==FACILITY_WIN32)
    {
        DWORD dwLastError;
        WCHAR szErrorBuf[MAX_PATH];
        WCHAR szNameBuf[MAX_PATH];
    
    HRESULT hr_return =S_OK;
        hr_return = ADsGetLastError( &dwLastError,
                                       szErrorBuf,
                                       MAX_PATH,
                                       szNameBuf,
                                       MAX_PATH);
  if (SUCCEEDED(hr_return))
    {
      wprintf(L"Error Code: %d\n Error Text: %ws\n Provider: %ws\n", dwLastError, szErrorBuf, szNameBuf);
    }
  }


aetos  2009-06-04 23:34:03  No: 70267

これが原因かなー?
http://support.microsoft.com/kb/171724/ja

コンソールアプリなら、main の最初に CoInitialize、最後に CoUninitialize を呼んでみてください。


さんぽ道  2009-06-04 23:44:25  No: 70268

おお!
そうかも知れません。

やっていなかったので、コーディングして
試してみますッ!!


さんぽ道  2009-06-04 23:48:52  No: 70269

解決できました!
ありがとうございます!


さんぽ道  2009-06-04 23:49:22  No: 70270

解決できました!
ありがとうございます!


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加