Fungsi NetGroupEnum (lmaccess.h)

Fungsi NetGroupEnum mengambil informasi tentang setiap grup global dalam database keamanan, yang merupakan database manajer akun keamanan (SAM) atau, dalam kasus pengendali domain, Direktori Aktif.

Fungsi NetQueryDisplayInformation menyediakan mekanisme yang efisien untuk menghitung grup global. Jika memungkinkan, disarankan agar Anda menggunakan NetQueryDisplayInformation alih-alih fungsi NetGroupEnum .

Sintaks

NET_API_STATUS NET_API_FUNCTION NetGroupEnum(
  [in]      LPCWSTR    servername,
  [in]      DWORD      level,
  [out]     LPBYTE     *bufptr,
  [in]      DWORD      prefmaxlen,
  [out]     LPDWORD    entriesread,
  [out]     LPDWORD    totalentries,
  [in, out] PDWORD_PTR resume_handle
);

Parameter

[in] servername

Arahkan ke string konstanta yang menentukan nama DNS atau NetBIOS dari server jarak jauh tempat fungsi dijalankan. Jika parameter ini NULL, komputer lokal akan digunakan.

[in] level

Menentukan tingkat informasi data. Parameter ini bisa menjadi salah satu nilai berikut.

Nilai Makna
0
Mengembalikan nama grup global. Parameter bufptr menunjuk ke array struktur GROUP_INFO_0 .
1
Mengembalikan nama grup global dan komentar. Parameter bufptr menunjuk ke array struktur GROUP_INFO_1 .
2
Mengembalikan informasi terperinci tentang grup global. Parameter bufptr menunjuk ke array struktur GROUP_INFO_2 . Perhatikan bahwa pada Windows XP dan yang lebih baru, disarankan agar Anda menggunakan GROUP_INFO_3 sebagai gantinya.
3
Mengembalikan informasi terperinci tentang grup global. Parameter bufptr menunjuk ke array struktur GROUP_INFO_3 .

Windows 2000: Tingkat ini tidak didukung.

[out] bufptr

Arahkan ke buffer untuk menerima struktur informasi grup global. Format data ini tergantung pada nilai parameter tingkat .

Sistem mengalokasikan memori untuk buffer ini. Anda harus memanggil fungsi NetApiBufferFree untuk membatalkan alokasi memori. Perhatikan bahwa Anda harus membebaskan buffer meskipun fungsi gagal dengan ERROR_MORE_DATA.

[in] prefmaxlen

Menentukan panjang maksimum yang disukai dari data yang dikembalikan, dalam byte. Jika Anda menentukan MAX_PREFERRED_LENGTH, fungsi mengalokasikan jumlah memori yang diperlukan untuk menyimpan data. Jika Anda menentukan nilai lain dalam parameter ini, nilai tersebut dapat membatasi jumlah byte yang dikembalikan fungsi. Jika ukuran buffer tidak cukup untuk menahan semua entri, fungsi akan mengembalikan ERROR_MORE_DATA. Untuk informasi selengkapnya, lihat Buffer Fungsi Manajemen Jaringan dan Panjang Buffer Fungsi Manajemen Jaringan.

[out] entriesread

Pointer ke nilai yang menerima hitungan elemen yang benar-benar dijumlahkan.

[out] totalentries

Penunjuk ke nilai yang menerima jumlah total entri yang bisa dijumlahkan dari posisi resume saat ini. Jumlah total entri hanyalah petunjuk. Untuk informasi selengkapnya tentang menentukan jumlah entri yang tepat, lihat bagian Keterangan berikut ini.

[in, out] resume_handle

Penunjuk ke variabel yang berisi handel resume yang digunakan untuk melanjutkan enumerasi grup global. Handel harus nol pada panggilan pertama dan dibiarkan tidak berubah untuk panggilan berikutnya. Jika parameter ini NULL, tidak ada handel resume yang disimpan.

Nilai kembali

Jika fungsi berhasil, nilai yang dikembalikan NERR_Success.

Jika fungsi gagal, nilai yang dikembalikan bisa menjadi salah satu kode kesalahan berikut.

Menampilkan kode Deskripsi
ERROR_ACCESS_DENIED
Pengguna tidak memiliki akses ke informasi yang diminta.
NERR_InvalidComputer
Nama komputer tidak valid.
ERROR_MORE_DATA
Entri lainnya tersedia. Tentukan buffer yang cukup besar untuk menerima semua entri.

Keterangan

Jika Anda memprogram Direktori Aktif, Anda mungkin dapat memanggil metode Antarmuka Layanan Direktori Aktif (ADSI) tertentu untuk mencapai fungsionalitas yang sama yang dapat Anda capai dengan memanggil fungsi grup manajemen jaringan. Untuk informasi selengkapnya, lihat IADsGroup.

Jika Anda memanggil fungsi ini pada pengendali domain yang menjalankan Direktori Aktif, akses diizinkan atau ditolak berdasarkan daftar kontrol akses (ACL) untuk objek yang dapat diamankan. ACL default mengizinkan semua pengguna terautentikasi dan anggota grup "Akses pra-windows 2000 kompatibel" untuk melihat informasi. Jika Anda memanggil fungsi ini di server anggota atau stasiun kerja, semua pengguna yang diautentikasi dapat melihat informasi. Untuk informasi tentang akses anonim dan membatasi akses anonim pada platform ini, lihat Persyaratan Keamanan untuk Fungsi Manajemen Jaringan. Untuk informasi selengkapnya tentang ACL, ACL, dan token akses, lihat Model Access Control.

Fungsi ini hanya mengembalikan informasi di mana pemanggil memiliki akses Baca. Pemanggil harus memiliki akses Konten Daftar ke objek Domain, dan Menghitung Seluruh akses Domain SAM pada objek SAM Server yang terletak di kontainer Sistem.

Untuk menentukan jumlah total grup yang tepat, Anda harus menghitung seluruh pohon, yang dapat menjadi operasi yang mahal. Untuk menghitung seluruh pohon, gunakan parameter resume_handle untuk melanjutkan enumerasi untuk panggilan berturut-turut, dan gunakan parameter entriesread untuk mengakumulasi jumlah total grup. Jika aplikasi Anda berkomunikasi dengan pengendali domain, Anda harus mempertimbangkan untuk menggunakan Penyedia LDAP ADSI untuk mengambil jenis data ini dengan lebih efisien. Penyedia ADSI LDAP mengimplementasikan sekumpulan objek ADSI yang mendukung berbagai antarmuka ADSI. Untuk informasi selengkapnya, lihat Penyedia Layanan ADSI.

Nama akun pengguna dibatasi hingga 20 karakter dan nama grup dibatasi hingga 256 karakter. Selain itu, nama akun tidak dapat dihentikan oleh titik dan tidak dapat menyertakan koma atau salah satu karakter yang dapat dicetak berikut: ", /, , [, ], :, |, <, >, +, =, ;, ?, *. Nama juga tidak dapat menyertakan karakter dalam rentang 1-31, yang tidak dapat dicetak.

Persyaratan

   
Klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Target Platform Windows
Header lmaccess.h (termasuk Lm.h)
Pustaka Netapi32.lib
DLL Netapi32.dll

Lihat juga

GROUP_INFO_0

GROUP_INFO_1

GROUP_INFO_3

Fungsi Grup

NetApiBufferFree

NetGroupGetInfo

NetGroupGetUsers

NetQueryDisplayInformation

Fungsi Manajemen Jaringan

Gambaran Umum Manajemen Jaringan