Bagikan melalui


Fungsi NetUserModalsGet (lmaccess.h)

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

Sintaks

NET_API_STATUS NET_API_FUNCTION NetUserModalsGet(
  [in, optional] LPCWSTR servername,
  [in]           DWORD   level,
  [out]          LPBYTE  *bufptr
);

Parameter

[in, optional] 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. Untuk informasi selengkapnya, lihat bagian Keterangan berikut ini.

[in] level

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

Nilai Makna
0
Mengembalikan parameter kata sandi global. Parameter bufptr menunjuk ke struktur USER_MODALS_INFO_0 .
1
Mengembalikan informasi server masuk dan pengontrol domain. Parameter bufptr menunjuk ke struktur USER_MODALS_INFO_1 .
2
Mengembalikan nama domain dan pengidentifikasi. Parameter bufptr menunjuk ke struktur USER_MODALS_INFO_2 . Untuk informasi selengkapnya, lihat bagian Keterangan berikut ini.
3
Mengembalikan informasi penguncian. Parameter bufptr menunjuk ke struktur USER_MODALS_INFO_3 .
 

Log masuk sesi null dapat memanggil NetUserModalsGet secara anonim pada tingkat informasi 0 dan 3.

[out] bufptr

Penunjuk ke buffer yang menerima data. Format data ini tergantung pada nilai parameter tingkat .

Buffer untuk data ini dialokasikan oleh sistem dan aplikasi harus memanggil fungsi NetApiBufferFree untuk membebaskan memori yang dialokasikan ketika data yang dikembalikan tidak lagi diperlukan. Untuk informasi selengkapnya, lihat Buffer Fungsi Manajemen Jaringan dan Panjang Buffer Fungsi Manajemen Jaringan.

Nilai kembali

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_BAD_NETPATH
Jalur jaringan tidak ditemukan. Kesalahan ini dikembalikan jika parameter nama server tidak dapat ditemukan.
ERROR_INVALID_LEVEL
Tingkat panggilan sistem tidak benar. Kesalahan ini dikembalikan jika parameter tingkat bukan salah satu nilai yang didukung.
ERROR_INVALID_NAME
Nama file, nama direktori, atau sintaks label volume salah. Kesalahan ini dikembalikan jika sintaks parameter nama server salah.
ERROR_WRONG_TARGET_NAME
Nama akun target salah. Kesalahan ini dikembalikan untuk kegagalan masuk ke parameter nama server jarak jauh yang berjalan di Windows Vista.
NERR_InvalidComputer
Nama komputer tidak valid.

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

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

Untuk mengambil pengidentifikasi keamanan (SID) domain tempat komputer berada, panggil fungsi NetUserModalsGet yang menentukan struktur USER_MODALS_INFO_2 dan NULL dalam parameter nama server . Jika komputer bukan anggota domain, fungsi mengembalikan penunjuk NULL .

Contoh

Sampel kode berikut menunjukkan cara mengambil informasi global untuk semua pengguna dan grup global dengan panggilan ke fungsi NetUserModalsGet . Sampel memanggil NetUserModalsGet, menentukan informasi tingkat 0 (USER_MODALS_INFO_0). Jika panggilan berhasil, sampel mencetak informasi kata sandi global. Terakhir, sampel kode membebaskan memori yang dialokasikan untuk buffer informasi.

#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 *pBuf = NULL;
   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];
   //
   // Call the NetUserModalsGet function; specify level 0.
   //
   nStatus = NetUserModalsGet((LPCWSTR) pszServerName,
                              dwLevel,
                              (LPBYTE *)&pBuf);
   //
   // If the call succeeds, print the global information.
   //
   if (nStatus == NERR_Success)
   {
      if (pBuf != NULL)
      {
         printf("\tMinimum password length:  %d\n", pBuf->usrmod0_min_passwd_len);
         printf("\tMaximum password age (d): %d\n", pBuf->usrmod0_max_passwd_age/86400);
         printf("\tMinimum password age (d): %d\n", pBuf->usrmod0_min_passwd_age/86400);
         printf("\tForced log off time (s):  %d\n", pBuf->usrmod0_force_logoff);
         printf("\tPassword history length:  %d\n", pBuf->usrmod0_password_hist_len);
      }
   }
   // Otherwise, print the system error.
   //
   else
      fprintf(stderr, "A system error has occurred: %d\n", nStatus);
   //
   // Free the allocated memory.
   //
   if (pBuf != NULL)
      NetApiBufferFree(pBuf);

   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

NetUserModalsSet

Fungsi Manajemen Jaringan

Gambaran Umum Manajemen Jaringan

USER_MODALS_INFO_0

USER_MODALS_INFO_1

USER_MODALS_INFO_2

USER_MODALS_INFO_3

Fungsi Modal Pengguna