It's not binding but here it goes: You should replace these lines with the proper values entry.Path = "GC://****"; entry.Username = txtUN.Text; entry.Password = txtPW.Text; DirectoryEntry entry = new DirectoryEntry(); entry.Path = "GC://****"; entry.Username = txtUN.Text; entry.Password = txtPW.Text; DirectorySearcher ds = new DirectorySearcher(entry); ds.Filter = txtQuery.Text; ds.CacheResults = false; ds.SearchScope = SearchScope.Subtree; foreach (string s in cols) ds.PropertiesToLoad.Add(s); src = ds.FindAll(); cbResults.Items.Clear(); for (int i = 0; i < src.Count; i++) { if (src[i].GetDirectoryEntry().Properties["mail"].Value != null) cbResults.Items.Add(src[i].GetDirectoryEntry().Properties["mail"].Value); else cbResults.Items.Add(i); } private string[] cols = { "displayName", "givenName", "sn", "ou", "employeeType", "mail", "telephoneNumber", "samAccountNumber", "whenCreated", "whenChanged", "objectGUID", "c", "objectCategory", "anr", "otherTelephone", "cn", "badPwdCount", "lockoutTime", "pwdLastSet", "lastLogon", "mobile", "Profile", "LastLogin", "MaxStorage", "PasswordAge", "Description", };