2

なぜこれがうまくいかないのかを理解しようと何時間も頭を叩いてきました。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に含まれるすべてのユーザーが必要です。私は助けに感謝します!

4

1 に答える 1

3

.NET 3.5がオプションである場合は、頭を叩くのをやめて、ここを見てください。

C#.NET3.5を介したActiveDirectoryのすべて(System.DirectoryServices.AccountManagementを使用)

真剣に、.NET3.5でのAD処理は別の世界です。それはすべてを変えるでしょう。もちろん、より良い方法です。

アップデート

また、ここにすぐに答えがあります(Active DirectoryユーザーグループメンバーシップGroupPrincipal)。私はそれをコピーしないという良識があります。:)

.NET 3.5、ところで使用します。

于 2011-07-06T22:33:16.833 に答える