Condividi tramite


Funzione NetSessionDel (lmshare.h)

Termina una sessione di rete tra un server e una workstation.

Sintassi

NET_API_STATUS NET_API_FUNCTION NetSessionDel(
  [in] LMSTR servername,
  [in] LMSTR UncClientName,
  [in] LMSTR username
);

Parametri

[in] servername

Puntatore a una stringa che specifica il nome DNS o NetBIOS del server remoto in cui deve essere eseguita la funzione. Se questo parametro è NULL, viene utilizzato il computer locale.

[in] UncClientName

Puntatore a una stringa che specifica il nome computer del client da disconnettere. Se il parametro UncClientName è NULL, tutte le sessioni dell'utente identificate dal parametro username verranno eliminate nel server specificato dal parametro servername . Per altre informazioni, vedere NetSessionEnum.

[in] username

Puntatore a una stringa che specifica il nome dell'utente la cui sessione deve essere terminata. Se questo parametro è NULL, tutte le sessioni degli utenti dal client specificato dal parametro UncClientName devono essere terminate.

Valore restituito

Se la funzione ha esito positivo, il valore restituito viene NERR_Success.

Se la funzione ha esito negativo, il valore restituito può essere uno dei codici di errore seguenti.

Codice restituito Descrizione
ERROR_ACCESS_DENIED
L'utente non ha accesso alle informazioni richieste.
ERROR_INVALID_PARAMETER
Il parametro specificato non è valido.
ERROR_NOT_ENOUGH_MEMORY
Memoria insufficiente disponibile.
NERR_ClientNameNotFound
Una sessione non esiste con il nome del computer.

Commenti

Solo i membri del gruppo locale Administrators o Server Operators possono eseguire correttamente la funzione NetSessionDel .

Se si esegue la programmazione per Active Directory, è possibile chiamare determinati metodi ADSI (Active Directory Service Interface) per ottenere la stessa funzionalità che è possibile ottenere chiamando le funzioni di sessione di gestione di rete. Per altre informazioni, vedere IADsSession e IADsFileServiceOperations.

Esempio

Nell'esempio di codice seguente viene illustrato come terminare una sessione tra un server e una workstation usando una chiamata alla funzione NetSessionDel .

#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 dwError = 0;
   LPTSTR pszServerName = NULL;
   LPTSTR pszClientName = NULL;
   LPTSTR pszUserName = NULL;
   NET_API_STATUS nStatus;
   //
   // Check command line arguments.
   //
   if (argc > 4)
   {
      wprintf(L"Usage: %s [\\\\ServerName] [\\\\ClientName] [UserName]\n", argv[0]);
      exit(1);
   }

   if (argc >= 2)
      pszServerName = argv[1];

   if (argc >= 3)
      pszClientName = argv[2];

   if (argc == 4)
      pszUserName = argv[3];
   //
   // Call the NetSessionDel function to delete the session.
   //
   nStatus = NetSessionDel(pszServerName,
                           pszClientName,
                           pszUserName);
   //
   // Display the result of the call.
   //
   if (nStatus == NERR_Success)
      fprintf(stderr, "The specified session(s) has been successfully deleted\n");
   else
      fprintf(stderr, "A system error has occurred: %d\n", nStatus);

   return 0;
}

Requisiti

Requisito Valore
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione lmshare.h (include Lm.h)
Libreria Netapi32.lib
DLL Netapi32.dll

Vedi anche

NetSessionEnum

NetSessionGetInfo

Funzioni di gestione di rete

Panoramica della gestione della rete

Funzioni di sessione