なぜこれがうまくいかないのかを理解しようと何時間も頭を叩いてきました。ADグループからユーザーのリストを取得する例を見つけましたが、それを機能させることができません。これが私がやろうとしてきたことです:
DirectoryEntry de = new DirectoryEntry("LDAP://DC=" + domain + ",DC=com");
DirectorySearcher ds = new DirectorySearcher(de);//, "(objectClass=person)");
ds.Filter = "(&(objectCategory=person)(objectclass=user)(memberOf=CN=!CityNameGroup))";
ds.PropertiesToLoad.Add("givenname");
ds.PropertiesToLoad.Add("samaccountname");
ds.PropertiesToLoad.Add("sn");
ds.PropertiesToLoad.Add("useraccountcontrol");
foreach (SearchResult sr in ds.FindAll())
{//stuff goes here}
ただしds.FindAll、このフィルターでは常に0の結果が返されます。結果を返すより単純なフィルターを実行できますが、上記のフィルターから何も返されません。!CityNameGroupに含まれるすべてのユーザーが必要です。私は助けに感謝します!