1

グループのすべてのメンバーについて AD に問い合わせています。

その結果、ユーザーとグループを取得します。私の質問: 単一の結果 (個人またはグループ) を調べるにはどうすればよいですか?

これは私のコードです。私は Resultpropertycollection を取得し、コレクションをループすると、それが人かグループかを各項目について知りたいです。

ds.PropertiesToLoad.Add("member")

For Each sr As SearchResult In ds.FindAll
  Dim valueCollection As ResultPropertyValueCollection = sr.Properties("member")
  Dim propertyValue As Object

  For Each propertyValue In valueCollection
    Console.WriteLine("{0}", propertyValue.ToString())
  Next propertyValue
Next

よろしくヤヴズ

アップデート:

これは完全なコードです:

Private Sub EnumPropertyAndMembersOfGroup(ByVal name As String, ByVal propertyname As String)
    Try
        Dim de As DirectoryEntry = New DirectoryEntry("LDAP://lab.com")
        Dim ds As DirectorySearcher = New DirectorySearcher

        ds.Filter = "(&(objectCategory=group)(cn=" & name & "))"
        ds.PropertiesToLoad.Add("sAMAccountName")
        ds.PropertiesToLoad.Add("memberOf")
        ds.PropertiesToLoad.Add("member")

        For Each sr As SearchResult In ds.FindAll
            Console.WriteLine("Search properties for {0}", sr.Path)
            Console.WriteLine()

            Dim valueCollection As ResultPropertyValueCollection = sr.Properties(propertyname)
            Dim propertyValue As Object

            For Each propertyValue In valueCollection
                Console.WriteLine("{0}", propertyValue.ToString())
            Next propertyValue
        Next
        Console.ReadKey()
    Catch ex As Exception
        Console.WriteLine("ERROR: " & ex.Message)
        Console.ReadKey()
    End Try
End Sub
4

2 に答える 2

0

わかりました、ここに解決策があります:

返されたオブジェクトの DN を使用して新しいクエリを実行し、オブジェクト クラスを確認する必要があります。

アカウントのタイプ (AD ユーザーと AD グループ) を判別する方法を教えてください。

于 2012-09-16T12:59:28.723 に答える
0

objectClass 属性を照会するか、おそらく見つかったエントリの DN を照会することで、個人またはグループを区別できるはずです。

ここに示すように

http://msdn.microsoft.com/en-us/library/windows/desktop/aa746475(v=vs.85).aspx

ユーザーの objectClass 属性値には「user」があります。

ユーザーがグループのメンバーであるかどうかをテストする LDAP クエリを作成する方法は?

于 2012-09-15T19:15:05.413 に答える