Получить участников группы Windows вместе с их доменными именами
-
10-10-2019 - |
Вопрос
У меня есть группа 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;
}
Не связан с StackOverflow