Bagikan melalui


Menghitung Pengguna

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

  • Hitung pengguna yang secara langsung terkandung dalam kontainer, OU, atau di akar domain:

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

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

    Karena enumerasi mengembalikan pointer ke objek ADSI COM yang mewakili setiap objek pengguna, Anda dapat memanggil QueryInterface untuk mendapatkan IAD, IADsUser, dan iaDsPropertyList penunjuk antarmuka ke objek pengguna. Ini berarti Anda bisa mendapatkan penunjuk antarmuka ke setiap objek pengguna yang dijumlahkan dalam kontainer tanpa harus secara eksplisit mengikat ke setiap objek pengguna. Untuk melakukan operasi pada semua pengguna langsung dalam kontainer, enumerasi menghindari harus mengikat ke setiap pengguna untuk memanggil IAD atau metode IADsUser . Untuk mengambil properti tertentu dari pengguna, gunakan IDirectorySearch seperti yang dijelaskan di opsi 2.

  • Lakukan pencarian mendalam untuk (&(objectClass=user)(objectCategory=person)) untuk menemukan semua pengguna di pohon:

    Pertama, ikat ke objek kontainer tempat memulai pencarian. Misalnya, untuk menemukan semua pengguna di domain, ikat ke akar domain; untuk menemukan semua pengguna di forest, ikat ke katalog global dan cari dari akar GC.

    Kemudian gunakan IDirectorySearch untuk mengkueri menggunakan filter pencarian yang berisi (&(objectClass=user)(objectCategory=person)) dan preferensi pencarian ADS_SCOPE_SUBTREE.

    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 pengguna. Untuk mengambil nilai, gunakan IDirectorySearch. Untuk memanipulasi objek pengguna yang dikembalikan dari pencarian, yaitu, Anda ingin menggunakan IAD atau metode IADsUser, Anda harus secara eksplisit mengikatnya. Untuk melakukan ini, tentukan distinguishedName sebagai salah satu properti yang akan dikembalikan dari pencarian dan gunakan nama khusus yang dikembalikan untuk mengikat ke setiap pengguna 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 pengguna.