2010-05-25 4 views
1

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

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 

ответ

4

Решение найдено с помощью 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

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

Смежные вопросы