Вот у меня поиск пользователя в AD по имени. Фильтр можете составить в Active Directory Users & Computers.
SearchResultCollection adSearchResult;
using (DirectoryEntry de = new DirectoryEntry("LDAP://esrr.oao.rzd"))
{
using (DirectorySearcher adSearch = new DirectorySearcher(de))
{
adSearch.Filter = $"(&(objectCategory=person)(objectClass=user)(name={searchString}*)(objectCategory=person)(objectClass=user)(!userAccountControl:1.2.840.113556.1.4.803:=2))";
//adSearch.PropertiesToLoad.Add("displayName");
adSearchResult = adSearch.FindAll();
}
}
ну и сброс пароля
public void ResetPassword(string userDn, string password)
{
DirectoryEntry uEntry = new DirectoryEntry(userDn);
uEntry.Invoke("SetPassword", new object[] { password });
uEntry.Properties["LockOutTime"].Value = 0; //unlock account
uEntry.Close();
}
ну и все это дело в сборке System.DirectoryServices.
и вообще
https://www.codeproject.com/articles/18102/howto-a...