Вводная: Необходимо было получить список только активных (не заблокированных) пользователей (к примеру для аудита). Есть множество средств для этого, начиная от внешних утилит (которые не рекомендуется использовать из соображений паранойи) и скриптов powershell (которых я не слишком хорошо знаю). Было решено это делать на C#. Вот пример кода который выводит только активных пользователей -
using System; using System.Windows.Forms; //Необходимо подключить ссылку using System.DirectoryServices; namespace DomainControl { public partial class Form1 : Form { public Form1() { InitializeComponent(); //Берём поиск по всему домену, DirectoryEntry dir = new DirectoryEntry(""); DirectorySearcher search = new DirectorySearcher(dir); //Вот сам фильтр search.Filter = "(&(objectCategory=person)(objectClass=user)(!userAccountControl:1.2.840.113556.1.4.803:=2))"; search.SearchScope = SearchScope.Subtree; // FindAll находит все, что находиться в объекте gs (и ниже, так как указан флаг Subtree). foreach (SearchResult result in search.FindAll()) { textBox1.Text += result.GetDirectoryEntry().Name + Environment.NewLine; } } } }
Комментариев нет:
Отправить комментарий