すべてのユーザー/グループをロードせずに、ドメイン内のユーザー/グループの数を取得したい。Active Directory:すべてのユーザー/グループをロードせずに、ドメイン内のユーザー数/グループ数を取得しますか?
これは可能ですか?特にC#で?
すべてのユーザー/グループをロードせずに、ドメイン内のユーザー/グループの数を取得したい。Active Directory:すべてのユーザー/グループをロードせずに、ドメイン内のユーザー数/グループ数を取得しますか?
これは可能ですか?特にC#で?
これはADでは実際には不可能です。適切なフィルターを使用してLDAPに照会し、結果をカウントする必要があります。一部のLDAP実装に存在するnumSubordinates
属性があります。この属性は、特定のオブジェクトの下にオブジェクトがいくつ存在するかを示しますが、ADはそれをサポートしていません。あなたが得ることができる最も近いのはmsDS-Approx-Immed-Subordinatesです。
ただし、上記の属性のいずれかが利用可能であっても、カウント内の従属オブジェクトの種類を区別する方法はありません。ユーザー/グループだけがディレクトリ内の特定の構造の下に存在することを保証することができない限り、それ以外は何もありません。
これは何とか助けになりました。 – gimbup
これはおそらくあなたのために役立つでしょう:[PrincipalSearcherを使ってADグループのメンバーを数える](http://stackoverflow.com/questions/35089911/get-count-of-members-in-a-ad- group-using-principalsearcher) –
上記のリンクは、カウントを取得する前にすべてのユーザーを読み込みます。 – gimbup
コレクションを列挙することなく、内部的または外部的にカウントする方法はありません。カウントの概念は、コレクションを列挙することです。例えば、学生集団を持っていてもStudents.Countをしていても、それらのすべてを内部的にやりとりすることになります。 もう1つの例は、C#DataSet RowCountです。あなたにたくさんのレコードがあれば、それを聞くだけで一定の時間がかかります。なぜだろう? –