C#列出ACL所有成员的代码

C#列出ACL所有成员的代码,c#,active-directory,C#,Active Directory,我有下面的VB脚本代码,我希望它在C#DOT NET中。代码的目的是列出LDAP中特定ACL的所有成员。有人能帮我吗 VB Script: Const ADS_SCOPE_SUBTREE = 2 Const adVariant = 12 iCount = 0 Set objConnection = CreateObject("ADODB.Connection") Set objCommand = CreateObject("ADODB.Comma

我有下面的VB脚本代码,我希望它在C#DOT NET中。代码的目的是列出LDAP中特定ACL的所有成员。有人能帮我吗

    VB Script:
    Const ADS_SCOPE_SUBTREE = 2
    Const adVariant = 12
    iCount = 0

    Set objConnection = CreateObject("ADODB.Connection")
    Set objCommand = CreateObject("ADODB.Command")
    objConnection.Provider = "ADsDSOObject"
    objConnection.Open "Active Directory Provider"
    Set objCommand.ActiveConnection = objConnection
    objCommand.CommandText = "Select member from 'LDAP://DC=xxx,DC=yyy,DC=zz,DC=com' where objectClass='group' and name = '" & txtACLName.Text & "'"

    objCommand.Properties("Page Size") = 1000
    objCommand.Properties("Timeout") = 30
    objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
    objCommand.Properties("Cache Results") = False
    Set objRecordSet = objCommand.Execute
    objRecordSet.MoveFirst

    strMembers = ""
    Do Until objRecordSet.EOF
        For i = 0 To objRecordSet.Fields.Count - 1
            arrField = objRecordSet.Fields(i)
            If IsArray(arrField) Then
                For Each strItem In arrField
                    sUser = GetUserId(strItem)

你可以在下面的链接中找到你的答案


您好,我尝试使用链接中给出的代码,但对于少数ACL,我得到了正确的结果,对于少数ACL,我得到了0个成员或更少的成员。有人能告诉我原因吗?你有多少个acl条目?这是有限制的,因为在某些情况下,您会得到1000或1500个。很少有ACL的成员超过5000个,很少有ACL的成员少于200个,但我可以使用VB脚本检索它们,如下所示。但是我没有得到到C#的精确代码转换。使用System.Activedirectory,我只获得少数ACL的结果,其他ACL的结果显示为0(零)。