Fungsi NetSessionGetInfo (lmshare.h)

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
0
Mengembalikan nama komputer yang menetapkan sesi.

Parameter bufptr menunjuk ke struktur SESSION_INFO_0 .

1
Mengembalikan nama komputer, nama pengguna, dan membuka file, pipa, dan perangkat di komputer.

Parameter bufptr menunjuk ke struktur SESSION_INFO_1 .

2
Selain informasi yang ditunjukkan untuk tingkat 1, kembalikan jenis klien dan bagaimana pengguna membuat sesi.

Parameter bufptr menunjuk ke struktur SESSION_INFO_2 .

10
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
ERROR_ACCESS_DENIED
Pengguna tidak memiliki akses ke informasi yang diminta.
ERROR_INVALID_LEVEL
Nilai yang ditentukan untuk parameter tingkat tidak valid.
ERROR_INVALID_PARAMETER
Parameter yang ditentukan tidak valid.
ERROR_NOT_ENOUGH_MEMORY
Memori tidak cukup tersedia.
NERR_ClientNameNotFound
Sesi tidak ada dengan nama komputer.
NERR_InvalidComputer
Nama komputer tidak valid.
NERR_UserNotFound
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

Lihat juga

NetSessionDel

NetSessionEnum

Fungsi Manajemen Jaringan

Gambaran Umum Manajemen Jaringan

SESSION_INFO_0

SESSION_INFO_1

SESSION_INFO_10

SESSION_INFO_2

Fungsi Sesi