none
アクティブディレクトリからの情報の取得方法について RRS feed

  • 質問

  • アクティブディレクトリの情報の取得方法について分からないことがあり質問したりと思います。
    具体的には、下記のソースで
    result.GetDirectoryEntry().Properties("sAMAccountName").Value.ToString()
    のところでnullによるエラーが発生します。
    現象としては、検索は出来ているのですが、sAMAccountNameのプロパティがないようです。
    教えてもらえますでしょうか。

            Using entry = New DirectoryEntry(_path, _DomainName & "\" & _UserID, _Password)

                Dim obj As Object = entry.NativeObject
                _FindDataSet = Nothing

                Using search As DirectorySearcher = New DirectorySearcher(entry)
                    'search.Filter = "(SAMAccountName=" + _UserID + ")"
                    search.PropertiesToLoad.Add("sAMAccountName")
                    search.PropertiesToLoad.Add("company")

                    Dim results As SearchResultCollection = search.FindAll()
                    If results Is Nothing Then
                    Else
                        For Each result As SearchResult In results
                            If _FindDataSet Is Nothing Then
                                _FindDataSet = New DataTable
                                _FindDataSet.Columns.Add("userid", System.Type.GetType("System.String"), "")
                                _FindDataSet.Columns.Add("company", System.Type.GetType("System.String"), "")
                            End If

                            Dim row As DataRow = _FindDataSet.NewRow()
                            Dim strBuf As String = result.GetDirectoryEntry().Properties("sAMAccountName").Value.ToString()
                            row.Item(0) = result.GetDirectoryEntry().Properties("sAMAccountName").Value.ToString()
                            row.Item(1) = result.GetDirectoryEntry().Properties("company").Value.ToString()
                            _FindDataSet.Rows.Add(row)
                        Next
                    End If
                End Using

                obj = Nothing

            End Using

    2009年9月24日 2:51

回答

  • ぽこりん さんこんにちは

    単純に sAMAccountName 属性がないDirectoryEntry にバインドしているだけではないでしょうか?
    ソースを見させていただいたところ、絞り込み条件なしで検索しているように見えます。

    sAMAccountName を取得しようとしている箇所で、
    result.GetDirectoryEntry().Properties.Contains("sAMAcountName") とすると、
    結果がFalseになると思います。
    • 回答としてマーク 菊地俊介 2009年10月13日 9:29
    2009年9月28日 4:27

すべての返信

  • ぽこりん さんこんにちは

    単純に sAMAccountName 属性がないDirectoryEntry にバインドしているだけではないでしょうか?
    ソースを見させていただいたところ、絞り込み条件なしで検索しているように見えます。

    sAMAccountName を取得しようとしている箇所で、
    result.GetDirectoryEntry().Properties.Contains("sAMAcountName") とすると、
    結果がFalseになると思います。
    • 回答としてマーク 菊地俊介 2009年10月13日 9:29
    2009年9月28日 4:27
  • 皆様、こんにちは。

    handcraftさん、回答ありがとうございます。

    ぽこりんさん、フォーラムのご利用ありがとうございます。
    その後いかがでしょうか?疑問は解決しましたか?
    有用な情報と思われたため、handcraftさんの回答へ回答マークをつけさせていただきました。

    今後ともフォーラムをよろしくお願いします。
    それでは!
    2009年10月13日 9:31