Получение пользователей определённой группы из Active Directory - C#
Формулировка задачи:
Доброго времени суток. В своей программе я могу получить всех пользователей из AD
А так же все группы которые есть на сервере AD
Здесь я пытаюсь получить всех пользователей группы IVT-14...
Вот моя попытка, но я ничего не получаю, подскажите где может быть ошибка?
Подскажите пожалуйста, как мне получить всех пользователей определённой группы?
private void Gusers_Click(object sender, EventArgs e) { textBox1.Text = Directory.Name.ToString(); DirectorySearcher search = new DirectorySearcher(Directory); search.Filter = "(&(objectCategory=person)(objectClass=user)(!userAccountControl:1.2.840.113556.1.4.803:=2))";//all users search.Filter = ""; search.SearchScope = SearchScope.Subtree; foreach (SearchResult result in search.FindAll()) { listBox1.Items.Add(result.GetDirectoryEntry().Name.ToString()); } textBox2.Text = listBox1.Items.Count.ToString(); }
private void GGroups_Click(object sender, EventArgs e) { textBox2.Text = Directory.Name.ToString(); DirectorySearcher search = new DirectorySearcher(Directory); search.Filter = "(objectClass=Group)";//all groups search.Filter = ""; search.SearchScope = SearchScope.Subtree; foreach (SearchResult result in search.FindAll()) { listBox2.Items.Add(result.GetDirectoryEntry().Name.ToString()); } textBox2.Text = listBox1.Items.Count.ToString(); }
private void GUsers_in_Groups_Click(object sender, EventArgs e) { textBox1.Text = Directory.Name.ToString(); DirectorySearcher search = new DirectorySearcher(Directory); //search.Filter = "(memberOf:1.2.840.113556.1.4.1941:=cn=IVT-14,dc=itm, dc=sibsiu, dc=ru)"; search.Filter = ""; search.SearchScope = SearchScope.Subtree; foreach (SearchResult result in search.FindAll()) { listBox1.Items.Add(result.GetDirectoryEntry().Name.ToString()); } textBox2.Text = listBox1.Items.Count.ToString(); }
Решение задачи: «Получение пользователей определённой группы из Active Directory»
textual
Листинг программы
private SearchResult GetRecord(string filter) { try { using (var searcher = new DirectorySearcher(Directory)) { searcher.Filter = filter; var results = searcher.FindOne(); return results; } } catch (DirectoryServicesCOMException ex) { throw new Exception(ex.ExtendedErrorMessage, ex); } } private SearchResult GetRecords(string filter) { try { using (var searcher = new DirectorySearcher(Directory)) { searcher.Filter = filter; var results = searcher.FindAll(); return results; } } catch (DirectoryServicesCOMException ex) { throw new Exception(ex.ExtendedErrorMessage, ex); } } // использование string filter = string.Format("(&(objectCategory=group)(cn={0}))", parentGroupName); var group = GetRecord (filter); var distName = result.Properties["distinguishedname"][0] as string; filter = string.Format("(&(memberof={0})(objectCategory=person)(|(objectClass=user)(objectClass=contact)))", distName); var users = GetRecords(filter); // profit
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д