I have this code:
public static DataTable ExecutesAMAccountNameQuery(string sAMAccountName)
{
string filter = "(&(objectCategory=person)(objectClass=user)(sAMAccountName=" + sAMAccountName + "))";
return ExecuteADQuery("GC:", filter);
}
It only works with the full username, I dont know the syntax to make it work with wildcards, like a LIKE in sql?
Thanks
If you’re using .NET 3.5 or newer, you can use a
PrincipalSearcherand a “query-by-example” principal to do your searching:If you haven’t already – absolutely read the MSDN article Managing Directory Security Principals in the .NET Framework 3.5 which shows nicely how to make the best use of the new features in
System.DirectoryServices.AccountManagement. Or see the MSDN documentation on the System.DirectoryServices.AccountManagement namespace.Of course, depending on your need, you might want to specify other properties on that “query-by-example” user principal you create:
DisplayName(typically: first name + space + last name)SAM Account Name– your Windows/AD account nameUser Principal Name– your “username@yourcompany.com” style nameYou can specify any of the properties on the
UserPrincipaland use those as “query-by-example” for yourPrincipalSearcher.