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 |
---|---|
|
Menentukan parameter kata sandi global. Parameter buf menunjuk ke struktur USER_MODALS_INFO_0 . |
|
Menentukan informasi server masuk dan pengendali domain. Parameter buf menunjuk ke struktur USER_MODALS_INFO_1 . |
|
Menentukan nama domain dan pengidentifikasi. Parameter buf menunjuk ke struktur USER_MODALS_INFO_2 . |
|
Menentukan informasi penguncian. Parameter buf menunjuk ke struktur USER_MODALS_INFO_3 . |
|
Menentukan panjang kata sandi minimum yang diperbolehkan. Parameter buf menunjuk ke struktur USER_MODALS_INFO_1001 . |
|
Menentukan usia kata sandi maksimum yang diperbolehkan. Parameter buf menunjuk ke struktur USER_MODALS_INFO_1002 . |
|
Menentukan usia kata sandi minimum yang diperbolehkan. Parameter buf menunjuk ke struktur USER_MODALS_INFO_1003 . |
|
Menentukan informasi keluar paksa. Parameter buf menunjuk ke struktur USER_MODALS_INFO_1004 . |
|
Menentukan panjang riwayat kata sandi. Parameter buf menunjuk ke struktur USER_MODALS_INFO_1005 . |
|
Menentukan peran server masuk. Parameter buf menunjuk ke struktur USER_MODALS_INFO_1006 . |
|
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 |
---|---|
|
Pengguna tidak memiliki akses ke informasi yang diminta. |
|
Parameter yang ditentukan tidak valid. Untuk informasi selengkapnya, lihat bagian Keterangan berikut ini. |
|
Nama komputer tidak valid. |
|
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 |