Поделиться через


Функция NetSessionDel (lmshare.h)

Завершает сетевой сеанс между сервером и рабочей станцией.

Синтаксис

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

Параметры

[in] servername

Указатель на строку, указывающую DNS- или NetBIOS-имя удаленного сервера, на котором выполняется функция. Если этот параметр имеет значение NULL, используется локальный компьютер.

[in] UncClientName

Указатель на строку, указывающую имя компьютера клиента для отключения. Если параметр UncClientName имеет значение NULL, то все сеансы пользователя, определенного параметром username , будут удалены на сервере, указанном параметром servername . Дополнительные сведения см. в разделе NetSessionEnum.

[in] username

Указатель на строку, указывающую имя пользователя, сеанс которого должен быть прерван. Если этот параметр имеет значение NULL, все сеансы пользователей из клиента, указанного параметром UncClientName , должны быть завершены.

Возвращаемое значение

Если функция выполнена успешно, возвращаемое значение будет NERR_Success.

Если функция завершается сбоем, возвращаемое значение может быть одним из следующих кодов ошибок.

Код возврата Описание
ERROR_ACCESS_DENIED
У пользователя нет доступа к запрошенной информации.
ERROR_INVALID_PARAMETER
Указанный параметр недопустим.
ERROR_NOT_ENOUGH_MEMORY
Недостаточно памяти.
NERR_ClientNameNotFound
Сеанс с таким именем компьютера не существует.

Комментарии

Только члены локальной группы "Администраторы" или "Операторы сервера" могут успешно выполнять функцию NetSessionDel .

При программировании для Active Directory вы можете вызвать определенные методы интерфейса службы Active Directory (ADSI) для достижения тех же функциональных возможностей, которые можно достичь, вызвав функции сеанса управления сетью. Дополнительные сведения см. в разделах IADsSession и IADsFileServiceOperations.

Примеры

В следующем примере кода показано, как завершить сеанс между сервером и рабочей станцией с помощью вызова функции 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;
}

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header lmshare.h (включая Lm.h)
Библиотека Netapi32.lib
DLL Netapi32.dll

См. также раздел

NetSessionEnum

NetSessionGetInfo

Функции управления сетью

Общие сведения об управлении сетью

Функции сеанса