Bagikan melalui


Menghitung Grup dalam Domain

Grup dapat ditempatkan di kontainer atau unit organisasi (OU) apa pun di domain serta akar domain. Ini berarti bahwa grup dapat berada di banyak lokasi dalam hierarki direktori. Oleh karena itu, Anda memiliki dua pilihan untuk menghitung grup:

  1. Menghitung grup yang secara langsung terkandung dalam kontainer, OU, atau di akar domain.

    Secara eksplisit mengikat objek kontainer yang berisi grup untuk menghitung, mengatur filter yang berisi "grup" sebagai kelas menggunakan properti IADsContainer.Filter, dan gunakan metode IADsContainer::get__NewEnumuntuk menghitung objek grup.

    Teknik ini menghitung grup yang terkandung langsung dalam kontainer atau objek OU. Jika kontainer berisi kontainer lain yang berpotensi berisi grup lain, Anda harus mengikat kontainer tersebut dan menghitung grup secara rekursif pada kontainer tersebut. Untuk memanipulasi objek grup dan membaca hanya properti tertentu, gunakan pencarian mendalam yang dijelaskan di Opsi 2.

    Karena enumerasi mengembalikan pointer ke objek ADSI COM yang mewakili setiap objek grup, Anda dapat memanggil QueryInterface untuk mendapatkan IAD , IADsGroup, dan IADsPropertyList penunjuk antarmuka ke objek grup; artinya, Anda bisa mendapatkan penunjuk antarmuka ke setiap objek grup enumerasi dalam kontainer tanpa harus secara eksplisit mengikat ke setiap objek grup. Untuk melakukan operasi pada semua grup langsung dalam kontainer, enumerasi tidak memerlukan ikatan ke setiap grup untuk memanggil metode IAD atau IADsGroup. Untuk mengambil properti tertentu dari grup, gunakan IDirectorySearch seperti yang dijelaskan dalam opsi kedua.

    Pengecualian untuk ini terjadi ketika Anda mencoba menghitung grup yang berisi anggota yang merupakan prinsipal keamanan yang dikenal baik, seperti Semua Orang, Pengguna Ter-autentikasi, BATCH, dan sebagainya. Karena Anda tidak dapat mengikat jenis objek ini, objek tersebut tidak tercantum saat Anda menghitung grup dalam cakupan WinNT, meskipun mungkin tampak mengikat, karena metode IAD tertentu seperti Kelas, ADsPath, dan Nama mengembalikan hasil yang benar ketika dipanggil pada anggota enumerasi.

  2. Lakukan pencarian mendalam untuk "objectCategory=group" untuk menemukan semua grup di pohon.

    Pertama, ikat ke objek kontainer tempat memulai pencarian. Misalnya, untuk menemukan semua grup di domain, hubungkan ke akar domain; untuk menemukan semua grup di hutan, hubungkan ke katalog global dan cari dari akar Katalog Global (GC).

    Kemudian gunakanIDirectorySearch untuk mengkueri menggunakan filter pencarian yang berisi (objectCategory=group) dan preferensi pencarian ADS_SCOPE_SUBTREE.

    Nota

    Anda dapat melakukan pencarian dengan preferensi pencarian ADS_SCOPE_ONELEVEL untuk membatasi pencarian ke konten langsung objek kontainer yang Anda ikat.

     

    IDirectorySearch hanya mengambil nilai properti tertentu dari grup. Untuk mengambil nilai, gunakan IDirectorySearch. Untuk memanipulasi objek grup yang dikembalikan dari pencarian, yaitu, untuk menggunakan metode IADs atau IADsGroup, mengikatnya secara eksplisit. Untuk melakukan ini, tentukan distinguishedName sebagai salah satu properti untuk dikembalikan dari pencarian dan gunakan nama khusus yang dikembalikan untuk mengikat ke setiap grup yang dikembalikan dalam pencarian.

    Hanya properti tertentu yang diambil. Anda tidak dapat mengambil semua atribut tanpa secara eksplisit menentukan setiap atribut yang mungkin dari kelas grup.