Получить всех пользователей в группе Active Directory - PullRequest
1 голос
/ 26 мая 2010

Я использую следующий пример кода, чтобы получить список всех пользователей в указанной группе AD (в данном случае, всех пользователей в группе «Пользователи домена»). Мой код, указанный в списке, работает отлично, за одним исключением: он не вернет пользователей, у которых в качестве основной группы задано «Пользователи домена». Как я могу получить список всех пользователей в группе, в том числе тех, для которых она установлена ​​в качестве основной группы?

Private Sub GetUsers()

    Dim groupSearcher As New DirectorySearcher
    Dim groupSearchRoot As New DirectoryEntry("LDAP://OU=Users,DC=domain,DC=com")

    With groupSearcher
        .SearchRoot = groupSearchRoot
        .Filter = "(&(ObjectClass=Group)(CN=Domain Users))"
    End With

    Dim members As Object
    members = groupSearcher.FindOne.GetDirectoryEntry.Invoke("Members", Nothing)

    For Each member As Object In CType(members, IEnumerable)
        Console.WriteLine(New DirectoryEntry(member).Name.Remove(0, 3))
    Next
End Sub

Ответы [ 2 ]

4 голосов
/ 23 июля 2012

Решение найдено с использованием вместо этого DirectoryServices.AccountManagement:

For Each group As GroupPrincipal In UserPrincipal.FindByIdentity(New PrincipalContext(ContextType.Domain, "domain.com"), IdentityType.SamAccountName, "userName").GetGroups()
    ' Do something with group name.
Next
0 голосов
/ 14 декабря 2010

Я тоже ищу надежный способ сделать это. Если вы хотите, чтобы пользователи были частью «Администраторы домена», запросите всех пользователей, где primaryGroupID = 512 (512 - это известный идентификатор, который означает «Администраторы домена»).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...