4

API を使用して、System.DirectoryServices.AccountManagementAD からグループのリストを取得しています。これらのグループはすべて同じプレフィックスで始まるため、プレフィックスとワイルドカードを使用して簡単に見つけることができます。私がやりたいことは、最後にチェックしてから変更されたグループを取得することです。GroupPrincipal属性を含めるようにサブクラス化しましwhenChangedた。現在、グループの完全なリストを取得した後、リストをフィルタリングするためにそれを使用しています。私が知りたいのは、 で を実行することは可能AdvancedFilterSearchですGroupPrincipalか? プロパティGroupPrincipalがないことに気づきました。AdvancedFilterSearchサブクラスに追加してPrincipalSearcher使用するかどうか疑問に思っていますか? はいの場合、例がいいでしょう。

ありがとう、

クリス・マッキノン

4

1 に答える 1

0

最後のチェック以降に変更されたグループのみを取得する簡単な答えは、(簡単には) 不可能です。

AD のすべてのオブジェクトには、更新シーケンス番号属性が関連付けられています。グループが変更されると、その USN が変更されます。しかしいつもではない。グループにメンバーを追加/削除しても、USN は変更されません。グループ名またはその他の単純なプロパティを変更した場合にのみ変更されます。さらに、USN 番号は 1 つのドメイン コントローラーで一意です。そのため、常に同じサーバーに接続していることを確認する必要があります。

AD オブジェクトへの変更をサブスクライブして、変更されたときに通知を受け取ることができますが、これはスケーリングしません。

私のプロジェクトでは、毎回すべてのグループを照会することになりました。API は結果セットのページ分割に非常に優れており、リソースを参照することによってそれほど集中的ではないため、これは思ったほど悪くはありません。

于 2012-01-15T14:39:06.523 に答える