Bagikan melalui


Fungsi NetUserSetGroups (lmaccess.h)

Fungsi NetUserSetGroups menetapkan keanggotaan grup global untuk akun pengguna tertentu.

Sintaks

NET_API_STATUS NET_API_FUNCTION NetUserSetGroups(
  [in] LPCWSTR servername,
  [in] LPCWSTR username,
  [in] DWORD   level,
  [in] LPBYTE  buf,
  [in] DWORD   num_entries
);

Parameter

[in] servername

Penunjuk 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] username

Penunjuk ke string konstanta yang menentukan nama pengguna untuk mengatur keanggotaan grup global. Untuk informasi lebih lanjut, lihat bagian Keterangan.

[in] level

Tingkat informasi data. Parameter ini bisa menjadi salah satu nilai berikut.

Nilai Makna
0
Parameter buf menunjuk ke array struktur GROUP_USERS_INFO_0 yang menentukan nama grup global.
1
Parameter buf menunjuk ke array struktur GROUP_USERS_INFO_1 yang menentukan nama grup global dengan atribut.

[in] buf

Penunjuk ke buffer yang menentukan data. Untuk informasi selengkapnya, lihat Buffer Fungsi Manajemen Jaringan.

[in] num_entries

Jumlah entri yang terkandung dalam array yang ditujukkan oleh parameter buf .

Mengembalikan nilai

Jika fungsi berhasil, nilai yang dikembalikan adalah NERR_Success.

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

Menampilkan kode Deskripsi
ERROR_ACCESS_DENIED
Pengguna tidak memiliki akses ke informasi yang diminta.
ERROR_INVALID_LEVEL
Tingkat panggilan sistem tidak benar. Kesalahan ini dikembalikan jika parameter tingkat ditentukan sebagai nilai selain 0 atau 1.
ERROR_INVALID_PARAMETER
Parameter yang diteruskan tidak valid. Kesalahan ini dikembalikan jika parameter num_entries tidak valid.
ERROR_NOT_ENOUGH_MEMORY
Memori tidak cukup tersedia untuk menyelesaikan operasi.
NERR_InvalidComputer
Nama komputer tidak valid.
NERR_NotPrimary
Operasi ini hanya diperbolehkan pada pengendali domain utama domain.
NERR_GroupNotFound
Nama grup grup yang ditentukan oleh grui0_name dalam struktur GROUP_USERS_INFO_0 atau anggota grui1_name dalam struktur GROUP_USERS_INFO_1 yang ditunjukkan oleh parameter buf tidak ada.
NERR_InternalError
Terjadi kesalahan internal.
NERR_UserNotFound
Nama pengguna tidak dapat ditemukan.

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 pengguna manajemen jaringan. Untuk informasi selengkapnya, lihat IADsUser dan IADsComputer.

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 hanya mengizinkan Admin Domain dan Operator Akun untuk memanggil fungsi ini. Di server anggota atau stasiun kerja, hanya Administrator dan Pengguna Daya yang dapat memanggil fungsi ini. Untuk informasi selengkapnya, lihat Persyaratan Keamanan untuk Fungsi Manajemen Jaringan. Untuk informasi selengkapnya tentang ACL, ACE, dan token akses, lihat Model Access Control.

Pendeskripsi keamanan objek Pengguna digunakan untuk melakukan pemeriksaan akses untuk fungsi ini.

Untuk memberikan keanggotaan pengguna dalam satu grup global yang ada, Anda dapat memanggil fungsi NetGroupAddUser .

Nama akun pengguna dibatasi hingga 20 karakter dan nama grup dibatasi hingga 256 karakter. Selain itu, nama akun tidak dapat dihentikan dengan 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.

Contoh

Sampel kode berikut menunjukkan cara mengatur keanggotaan grup global untuk akun pengguna dengan panggilan ke fungsi NetUserSetGroups . Sampel kode mengisi anggota grui0_name struktur GROUP_USERS_INFO_0 dan memanggil NetUserSetGroups, menentukan tingkat informasi 0.

#ifndef UNICODE
#define UNICODE
#endif
#pragma comment(lib, "netapi32.lib")

#include <stdio.h>
#include <windows.h> 
#include <lm.h>

int wmain(int argc, wchar_t *argv[])
{
   DWORD dwLevel = 0;
   GROUP_USERS_INFO_0 gi;
   NET_API_STATUS nStatus;

   if (argc != 4)
   {
      fwprintf(stderr, L"Usage: %s \\\\ServerName UserName GroupName\n", argv[0]);
      exit(1);
   }
   //
   // Fill in the GROUP_USERS_INFO_0 structure member.
   //
   gi.grui0_name = argv[3];
   //
   // Call the NetUserSetGroups function; specify level 0.
   //
   nStatus = NetUserSetGroups(argv[1],
                              argv[2],
                              dwLevel,
                              (LPBYTE)&gi,
                              1);
   //
   // If the call succeeds, inform the user.
   //
   if (nStatus == NERR_Success)
      fwprintf(stderr, L"Group membership has been successful for %s\n", argv[2]);
   //
   // Otherwise, print the system error.
   //
   else
      fprintf(stderr, "A system error has occurred: %d\n", nStatus);

   return 0;
}

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_USERS_INFO_0

GROUP_USERS_INFO_1

NetGroupAddUser

NetUserGetGroups

Fungsi Manajemen Jaringan

Gambaran Umum Manajemen Jaringan

Fungsi Pengguna