Получить участников группы Windows вместе с их доменными именами

StackOverflow https://stackoverflow.com/questions/4454019

Вопрос

У меня есть группа Windows под названием «Windgrp». В ней есть три участника:

  • Администраторы
  • testdomain.administrator
  • пользователь1

У меня есть этот код для отображения участников, присутствующих в группе:

using (DirectoryEntry groupEntry = 
  new DirectoryEntry("WinNT://./" + userGroupName + ",group"))
{
    foreach (object member in (IEnumerable)groupEntry.Invoke("Members"))
    {
        using (DirectoryEntry memberEntry = new DirectoryEntry(member))
        {

            listbox.itms.add(memberentry.name);
        }
    }
}

Это дает мне результат:

  • Администратор
  • Администратор
  • пользователь

Это не Покажите мне, к какой домену принадлежит 2 -я запись.

Как я могу получить домен?

Это было полезно?

Решение

Вам нужно пройти по иерахии объектов. Так что, если у вас есть пользователь, вы можете начать рекурсию оттуда в поисках классов Shcema, которые удовлетворяют ваши критерии поиска.

           public DirectoryEntry FindDomain(DirectoryEntry memberEntry) 
           {

                if(memberEntry.SchemaClassName.ToLower().Contains("domain") 
                {
                       return memberEntry;
                }   
                if(memberEntry.Parent !=null) 
                {
                         return FindDomain(memberEntry.Parent);
                }
                return null;
           }
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top