を返したいのでSamAccountName
、オブジェクトを使用して特定の値をActive Directory で検索しています。その検索に 2 つのフィルターを適用する方法を考えていました。1 つはアカウント名の先頭が xx で始まり、もう 1 つはアカウント名が _c で終わっていないことです。 PrincipalSearcher
UserPrincipal
現在、xx で始まるすべての結果を使用して検索できxx*
ますが、別の検索語を追加する方法や、等しくない検索語を適用する方法さえわかりません。これは私が現在取り組んでいるものです。
protected override void RunTests()
{
using (PrincipalContext context = new PrincipalContext(ContextType.Domain, "NAME", "OU=OUName",OU=name,DC=name,DC=net"))
{
UserPrincipal searchTemplate = new UserPrincipal(context);
searchTemplate.Enabled = true;
searchTemplate.SamAccountName = "xx*";
PrincipalSearcher search = new PrincipalSearcher(searchTemplate);
var principals = search.FindAll();
int total = principals.Count();
int numInvalidUsers = RunChecks(principals, new Check[]{
Check1
, Check2
, Check3
});
Score = numInvalidUsers == 0 ? 1 : 0;
}
}
私が考えているのは、に別のパラメーターを追加する必要があるということsearchTemplate.SamAccountName
です。方法がわかりません。
更新: Redditで役に立つ提案をしてくれた 人と話していましたが、このユーザーは闇に落ちました。最も一般的な提案は、何らかの方法で LDAP フィルターを実装することです。そのため、プリンシパル オブジェクトを返しながらそれらを実装する方法を誰かが知っていれば、非常に役立ちます。