Fungsi NetWkstaGetInfo (lmwksta.h)
Fungsi NetWkstaGetInfo mengembalikan informasi tentang konfigurasi stasiun kerja.
Sintaks
NET_API_STATUS NET_API_FUNCTION NetWkstaGetInfo(
[in] LMSTR servername,
[in] DWORD level,
[out] LPBYTE *bufptr
);
Parameter
[in] servername
Penunjuk ke string 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 |
---|---|
|
Mengembalikan informasi tentang lingkungan stasiun kerja, termasuk informasi khusus platform, nama domain dan komputer lokal, dan informasi mengenai sistem operasi. Parameter bufptr menunjuk ke struktur WKSTA_INFO_100 . |
|
Selain informasi tingkat 100, kembalikan jalur ke direktori LANMAN. Parameter bufptr menunjuk ke struktur WKSTA_INFO_101 . |
|
Selain informasi tingkat 101, kembalikan jumlah pengguna yang masuk ke komputer lokal. Parameter bufptr menunjuk ke struktur WKSTA_INFO_102 . |
[out] bufptr
Arahkan ke buffer yang menerima data. Format data ini tergantung pada nilai parameter tingkat . Buffer ini dialokasikan oleh sistem dan harus dibebaskan menggunakan fungsi NetApiBufferFree . Untuk informasi selengkapnya, lihat Buffer Fungsi Manajemen Jaringan dan Panjang Buffer Fungsi Manajemen Jaringan.
Menampilkan 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 |
---|---|
|
Pengguna tidak memiliki akses ke informasi yang diminta. |
|
Parameter tingkat tidak valid. |
Keterangan
Windows Server 2003 dan Windows XP: Jika Anda memanggil fungsi ini pada pengendali domain yang menjalankan Direktori Aktif, akses diizinkan atau ditolak berdasarkan ACL untuk objek yang dapat diamankan. Untuk mengaktifkan akses anonim, pengguna Anonim harus menjadi anggota grup "Akses yang kompatibel dengan Pra-Windows 2000". Ini karena token anonim tidak menyertakan SID grup Semua Orang secara default. Jika Anda memanggil fungsi ini di server anggota atau stasiun kerja, semua pengguna yang diautentikasi dapat melihat informasi. Akses anonim juga diizinkan jika pengaturan kebijakan EveryoneIncludesAnonymous memungkinkan akses anonim. Akses anonim selalu diizinkan untuk tingkat 100. Jika Anda memanggil fungsi ini di tingkat 101, pengguna yang diautentikasi dapat melihat informasi. Anggota Administrator, dan grup lokal Server, Sistem, dan Operator Cetak dapat melihat informasi pada tingkat 102 dan 502. Untuk informasi selengkapnya tentang membatasi akses anonim, lihat Persyaratan Keamanan untuk Fungsi Manajemen Jaringan. Untuk informasi selengkapnya tentang ACL, ACE, dan token akses, lihat Model Access Control.
Windows 2000: 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 dan anggota yang diautentikasi dari grup " Akses pra-Windows 2000 kompatibel" untuk melihat informasi. Secara default, grup "Akses pra-Windows 2000 kompatibel" menyertakan Semua Orang sebagai anggota. Ini memungkinkan akses anonim ke informasi jika sistem mengizinkan akses anonim. Jika Anda memanggil fungsi ini di server anggota atau stasiun kerja, semua pengguna yang diautentikasi dapat melihat informasi. Akses anonim juga diizinkan jika pengaturan kebijakan RestrictAnonymous memungkinkan akses anonim.
Untuk mengkompilasi aplikasi yang menggunakan fungsi ini, tentukan makro _WIN32_WINNT sebagai 0x0400 atau yang lebih baru. Untuk informasi selengkapnya, lihat Menggunakan Header Windows.
Contoh
Sampel kode berikut menunjukkan cara mengambil informasi tentang elemen konfigurasi untuk stasiun kerja menggunakan panggilan ke fungsi NetWkstaGetInfo . Sampel memanggil NetWkstaGetInfo, menentukan tingkat informasi 102 ( WKSTA_INFO_102). Jika panggilan berhasil, sampel mencetak informasi tentang stasiun kerja. 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 = 102;
LPWKSTA_INFO_102 pBuf = NULL;
NET_API_STATUS nStatus;
LPWSTR pszServerName = NULL;
//
// Check command line arguments.
//
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 = argv[1];
//
// Call the NetWkstaGetInfo function, specifying level 102.
//
nStatus = NetWkstaGetInfo(pszServerName,
dwLevel,
(LPBYTE *)&pBuf);
//
// If the call is successful,
// print the workstation data.
//
if (nStatus == NERR_Success)
{
printf("\n\tPlatform: %d\n", pBuf->wki102_platform_id);
wprintf(L"\tName: %s\n", pBuf->wki102_computername);
printf("\tVersion: %d.%d\n", pBuf->wki102_ver_major,
pBuf->wki102_ver_minor);
wprintf(L"\tDomain: %s\n", pBuf->wki102_langroup);
wprintf(L"\tLan Root: %s\n", pBuf->wki102_lanroot);
wprintf(L"\t# Logged On Users: %d\n", pBuf->wki102_logged_on_users);
}
//
// Otherwise, indicate 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 | lmwksta.h (termasuk Lm.h) |
Pustaka | Netapi32.lib |
DLL | Netapi32.dll |