Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Mengambil informasi tentang sesi yang ditetapkan antara server dan stasiun kerja tertentu.
Sintaks
NET_API_STATUS NET_API_FUNCTION NetSessionGetInfo(
[in] LMSTR servername,
[in] LMSTR UncClientName,
[in] LMSTR username,
[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] UncClientName
Penunjuk ke string yang menentukan nama sesi komputer yang informasinya akan dikembalikan. Parameter ini diperlukan dan tidak boleh NULL. Untuk informasi selengkapnya, lihat NetSessionEnum.
[in] username
Penunjuk ke string yang menentukan nama pengguna yang informasi sesinya akan dikembalikan. Parameter ini diperlukan dan tidak boleh NULL.
[in] level
Menentukan tingkat informasi data. Parameter ini bisa menjadi salah satu nilai berikut.
| Nilai | Makna |
|---|---|
|
Mengembalikan nama komputer yang menetapkan sesi.
Parameter bufptr menunjuk ke struktur SESSION_INFO_0 . |
|
Mengembalikan nama komputer, nama pengguna, dan membuka file, pipa, dan perangkat di komputer.
Parameter bufptr menunjuk ke struktur SESSION_INFO_1 . |
|
Selain informasi yang ditunjukkan untuk tingkat 1, kembalikan jenis klien dan bagaimana pengguna membuat sesi.
Parameter bufptr menunjuk ke struktur SESSION_INFO_2 . |
|
Mengembalikan nama komputer; nama pengguna; dan waktu aktif dan menganggur untuk sesi.
Parameter bufptr menunjuk ke struktur SESSION_INFO_10 . |
[out] bufptr
Arahkan ke buffer yang menerima data. Format data ini tergantung pada nilai parameter tingkat . Untuk informasi selengkapnya, lihat Buffer Fungsi Manajemen Jaringan dan Panjang Buffer Fungsi Manajemen Jaringan.
Buffer ini dialokasikan oleh sistem dan harus dikosongkan menggunakan fungsi NetApiBufferFree .
Nilai kembali
Jika fungsi berhasil, nilai yang dikembalikan adalah 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. |
|
Nilai yang ditentukan untuk parameter tingkat tidak valid. |
|
Parameter yang ditentukan tidak valid. |
|
Memori tidak cukup tersedia. |
|
Sesi tidak ada dengan nama komputer. |
|
Nama komputer tidak valid. |
|
Nama pengguna tidak dapat ditemukan. |
Keterangan
Hanya anggota grup lokal Administrator atau Operator Server yang berhasil menjalankan fungsi NetSessionGetInfo pada tingkat 1 atau tingkat 2. Tidak diperlukan keanggotaan grup khusus untuk panggilan tingkat 0 atau tingkat 10.
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 sesi manajemen jaringan. Untuk informasi selengkapnya, lihat IADsSession dan IADsFileServiceOperations.
Jika Anda memanggil fungsi ini di tingkat informasi 1 atau 2 di server anggota atau stasiun kerja, semua pengguna yang diautentikasi dapat melihat informasi tersebut.
Contoh
Sampel kode berikut menunjukkan cara mengambil informasi tentang sesi menggunakan panggilan ke fungsi NetSessionGetInfo . Sampel memanggil NetSessionGetInfo, menentukan informasi tingkat 10 ( SESSION_INFO_10). Jika panggilan berhasil, kode akan mencetak informasi tentang sesi tersebut. Terakhir, sampel 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 = 10;
LPSESSION_INFO_10 pBuf = NULL;
LPTSTR pszServerName = NULL;
LPTSTR pszUNCClientName = NULL;
LPTSTR pszUserName = NULL;
NET_API_STATUS nStatus;
//
// Check command line arguments.
//
if (argc == 3)
{
pszUNCClientName = argv[1];
pszUserName = argv[2];
}
else if (argc == 4)
{
pszServerName = argv[1];
pszUNCClientName = argv[2];
pszUserName = argv[3];
}
else
{
wprintf(L"Usage: %s [\\\\ServerName] \\\\ClientName UserName\n", argv[0]);
exit(1);
}
//
// Call the NetSessionGetInfo function, specifying level 10.
//
nStatus = NetSessionGetInfo(pszServerName,
pszUNCClientName,
pszUserName,
dwLevel,
(LPBYTE *)&pBuf);
//
// If the call succeeds,
//
if (nStatus == NERR_Success)
{
if (pBuf != NULL)
{
//
// Print the session information.
//
wprintf(L"\n\tClient: %s\n", pBuf->sesi10_cname);
wprintf(L"\tUser: %s\n", pBuf->sesi10_username);
printf("\tActive: %d\n", pBuf->sesi10_time);
printf("\tIdle: %d\n", pBuf->sesi10_idle_time);
}
}
//
// Otherwise, indicate a 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 XP [hanya aplikasi desktop] |
| Server minimum yang didukung | Windows Server 2003 [hanya aplikasi desktop] |
| Target Platform | Windows |
| Header | lmshare.h (termasuk Lm.h) |
| Pustaka | Netapi32.lib |
| DLL | Netapi32.dll |