次の方法で共有


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 関数を正常に実行できるのは、Administrators または Server Operators ローカル グループのメンバーだけです。

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
ヘッダー lmshare.h (Lm.h を含む)
Library Netapi32.lib
[DLL] Netapi32.dll

こちらもご覧ください

NetSessionEnum

NetSessionGetInfo

ネットワーク管理機能

ネットワーク管理の概要

セッション関数