Bagikan melalui


Fungsi NetUserModalsSet (lmaccess.h)

Fungsi NetUserModalsSet menetapkan informasi global untuk semua pengguna dan grup global dalam database keamanan, yang merupakan database manajer akun keamanan (SAM) atau, dalam kasus pengendali domain, Direktori Aktif.

Sintaks

NET_API_STATUS NET_API_FUNCTION NetUserModalsSet(
  [in]  LPCWSTR servername,
  [in]  DWORD   level,
  [in]  LPBYTE  buf,
  [out] LPDWORD parm_err
);

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
Menentukan parameter kata sandi global. Parameter buf menunjuk ke struktur USER_MODALS_INFO_0 .
1
Menentukan informasi server masuk dan pengendali domain. Parameter buf menunjuk ke struktur USER_MODALS_INFO_1 .
2
Menentukan nama domain dan pengidentifikasi. Parameter buf menunjuk ke struktur USER_MODALS_INFO_2 .
3
Menentukan informasi penguncian. Parameter buf menunjuk ke struktur USER_MODALS_INFO_3 .
1001
Menentukan panjang kata sandi minimum yang diperbolehkan. Parameter buf menunjuk ke struktur USER_MODALS_INFO_1001 .
1002
Menentukan usia kata sandi maksimum yang diperbolehkan. Parameter buf menunjuk ke struktur USER_MODALS_INFO_1002 .
1003
Menentukan usia kata sandi minimum yang diperbolehkan. Parameter buf menunjuk ke struktur USER_MODALS_INFO_1003 .
1004
Menentukan informasi keluar paksa. Parameter buf menunjuk ke struktur USER_MODALS_INFO_1004 .
1005
Menentukan panjang riwayat kata sandi. Parameter buf menunjuk ke struktur USER_MODALS_INFO_1005 .
1006
Menentukan peran server masuk. Parameter buf menunjuk ke struktur USER_MODALS_INFO_1006 .
1007
Menentukan informasi pengendali domain. Parameter buf menunjuk ke struktur USER_MODALS_INFO_1007 .

[in] buf

Penunjuk ke buffer yang menentukan data. Format data ini tergantung pada nilai parameter tingkat . Untuk informasi selengkapnya, lihat Buffer Fungsi Manajemen Jaringan.

[out] parm_err

Penunjuk ke nilai yang menerima indeks anggota pertama struktur informasi yang menyebabkan ERROR_INVALID_PARAMETER. Jika parameter ini NULL, indeks tidak dikembalikan pada kesalahan. Untuk informasi selengkapnya, lihat bagian Keterangan berikut ini.

Menampilkan nilai

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.
ERROR_INVALID_PARAMETER
Parameter yang ditentukan tidak valid. Untuk informasi selengkapnya, lihat bagian Keterangan berikut ini.
NERR_InvalidComputer
Nama komputer tidak valid.
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 modal pengguna manajemen jaringan. Untuk informasi selengkapnya, lihat IADsDomain.

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, ACL, dan token akses, lihat Model Access Control.

Pendeskripsi keamanan objek Domain digunakan untuk melakukan pemeriksaan akses untuk fungsi ini. Biasanya, penelepon harus memiliki akses tulis ke seluruh objek agar panggilan ke fungsi ini berhasil.

Jika fungsi NetUserModalsSet mengembalikan ERROR_INVALID_PARAMETER, Anda dapat menggunakan parameter parm_err untuk menunjukkan anggota pertama struktur informasi yang tidak valid. (Struktur informasi dimulai dengan USER_MODALS_INFO_ dan formatnya ditentukan oleh parameter tingkat .) Tabel berikut mencantumkan nilai yang bisa dikembalikan dalam parameter parm_err dan anggota struktur terkait yang bermasalah. (Awalan usrmod*_ menunjukkan bahwa anggota dapat dimulai dengan beberapa awalan, misalnya, usrmod2_ atau usrmod1002_.)

Nilai Anggota
MODALS_MIN_PASSWD_LEN_PARMNUM usrmod*_min_passwd_len
MODALS_MAX_PASSWD_AGE_PARMNUM usrmod*_max_passwd_age
MODALS_MIN_PASSWD_AGE_PARMNUM usrmod*_min_passwd_age
MODALS_FORCE_LOGOFF_PARMNUM usrmod*_force_logoff
MODALS_PASSWD_HIST_LEN_PARMNUM usrmod*_password_hist_len
MODALS_ROLE_PARMNUM usrmod*_role
MODALS_PRIMARY_PARMNUM usrmod*_primary
MODALS_DOMAIN_NAME_PARMNUM usrmod*_domain_name
MODALS_DOMAIN_ID_PARMNUM usrmod*_domain_id
MODALS_LOCKOUT_DURATION_PARMNUM usrmod*_lockout_duration
MODALS_LOCKOUT_OBSERVATION_WINDOW_PARMNUM usrmod*_lockout_observation_window
MODALS_LOCKOUT_THRESHOLD_PARMNUM usrmod*_lockout_threshold
 

Contoh

Sampel kode berikut menunjukkan cara mengatur informasi global untuk semua pengguna dan grup global dengan panggilan ke fungsi NetUserModalsSet . Sampel mengisi anggota struktur USER_MODALS_INFO_0 dan memanggil NetUserModalsSet, 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;
   USER_MODALS_INFO_0 ui;
   NET_API_STATUS nStatus;
   LPTSTR pszServerName = NULL;

   if (argc > 2)
   {
      fwprintf(stderr, L"Usage: %s [\\\\ServerName]\n", argv[0]);
      exit(1);
   }
   // The server is not the default local computer.
   //
   if (argc == 2)
      pszServerName = (LPTSTR) argv[1];
   //
   // Fill in the USER_MODALS_INFO_0 structure.
   //
   ui.usrmod0_min_passwd_len = 0;
   ui.usrmod0_max_passwd_age = (86400 * 30);
   ui.usrmod0_min_passwd_age = 0;
   ui.usrmod0_force_logoff = TIMEQ_FOREVER; // never force logoff
   ui.usrmod0_password_hist_len = 0;
   //
   // Call the NetUserModalsSet function; specify level 0.
   //
   nStatus = NetUserModalsSet((LPCWSTR) pszServerName,
                              dwLevel,
                              (LPBYTE)&ui,
                              NULL);
   //
   // If the call succeeds, inform the user.
   //
   if (nStatus == NERR_Success)
      fwprintf(stderr, L"Modals information set successfully on %s\n", argv[1]);
   //
   // 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

NetUserModalsGet

Fungsi Manajemen Jaringan

Gambaran Umum Manajemen Jaringan

USER_MODALS_INFO_0

USER_MODALS_INFO_1

USER_MODALS_INFO_1001

USER_MODALS_INFO_1002

USER_MODALS_INFO_1003

USER_MODALS_INFO_1004

USER_MODALS_INFO_1005

USER_MODALS_INFO_1006

USER_MODALS_INFO_1007

USER_MODALS_INFO_2

USER_MODALS_INFO_3

Fungsi Modal Pengguna