NetServerSetInfo 関数 (lmserver.h)

NetServerSetInfo 関数は、サーバーの操作パラメーターを設定します。個別またはまとめて設定できます。 情報は、システムが再初期化された後も有効な状態を維持できるように保存されます。

構文

NET_API_STATUS NET_API_FUNCTION NetServerSetInfo(
  [in]  LMSTR   servername,
  [in]  DWORD   level,
  [in]  LPBYTE  buf,
  [out] LPDWORD ParmError
);

パラメーター

[in] servername

関数を実行するリモート サーバーの名前を指定する文字列へのポインター。 このパラメーターが NULL の場合は、ローカル コンピューターが使用されます。

[in] level

データの情報レベルを指定します。 このパラメーターには、次の値のいずれかを指定できます。

説明
101
サーバー名、種類、および関連付けられているソフトウェアを指定します。 buf パラメーターは、SERVER_INFO_101構造体を指します。
102
サーバー名、種類、関連付けられているソフトウェア、およびその他の属性を指定します。 buf パラメーターは、SERVER_INFO_102構造体を指します。
402
サーバーに関する詳細情報を指定します。 buf パラメーターは、SERVER_INFO_402構造体を指します。
403
サーバーに関する詳細情報を指定します。 buf パラメーターは、SERVER_INFO_403構造体を指します。
 

さらに、レベル 1001-1006、1009-1011、1016-1018、1021、1022、1028、1029、1037、および 1043 は、LAN マネージャー システムの制限に基づいて有効です。

[in] buf

サーバー情報を受け取るバッファーへのポインター。 このデータの形式は 、level パラメーターの値によって異なります。 詳細については、「 ネットワーク管理機能バッファー」を参照してください。

[out] ParmError

ERROR_INVALID_PARAMETER エラーの原因となるサーバー情報構造体の最初のメンバーのインデックスを受け取る値へのポインター。 このパラメーターが NULL の場合、エラー時にインデックスは返されません。 詳細については、「解説」を参照してください。

戻り値

関数が成功した場合、戻り値はNERR_Success。

関数が失敗した場合、戻り値は次のいずれかのエラー コードになります。

リターン コード 説明
ERROR_ACCESS_DENIED
ユーザーには、要求された情報へのアクセス権がありません。
ERROR_INVALID_LEVEL
level パラメーターに指定された値が無効です。
ERROR_INVALID_PARAMETER
指定されたパラメーターが無効です。 詳細については、「解説」を参照してください。
ERROR_NOT_ENOUGH_MEMORY
十分なメモリがありません。

解説

NetServerSetInfo 関数を正常に実行できるのは、Administrators または Server Operators ローカル グループのメンバーだけです。

Active Directory をプログラミングしている場合は、特定の Active Directory サービス インターフェイス (ADSI) メソッドを呼び出して、ネットワーク管理サーバー関数を呼び出すことで実現できるのと同じ機能を実現できる場合があります。 詳細については、「 IADsComputer」を参照してください。

NetServerSetInfo 関数がERROR_INVALID_PARAMETERを返す場合は、ParmError パラメーターを使用して、サーバー情報構造の最初のメンバーが無効であることを示すことができます。 (サーバー情報構造は SERVER_INFO_ で始まり、その形式は level パラメーターで指定されます)。次の表に、 ParmError パラメーターで返すことができる値と、エラーが発生している対応する構造体メンバーを示します。 (プレフィックス sv*_ は、メンバーが複数のプレフィックス (sv101_やsv402_など) で始めることができることを示します。

メンバー
SV_PLATFORM_ID_PARMNUM sv*_platform_id
SV_NAME_PARMNUM sv*_name
SV_VERSION_MAJOR_PARMNUM sv*_version_major
SV_VERSION_MINOR_PARMNUM sv*_version_minor
SV_TYPE_PARMNUM sv*_type
SV_COMMENT_PARMNUM sv*_comment
SV_USERS_PARMNUM sv*_users
SV_DISC_PARMNUM sv*_disc
SV_HIDDEN_PARMNUM sv*_hidden
SV_ANNOUNCE_PARMNUM sv*_announce
SV_ANNDELTA_PARMNUM sv*_anndelta
SV_USERPATH_PARMNUM sv*_userpath
SV_ULIST_MTIME_PARMNUM sv*_ulist_mtime
SV_GLIST_MTIME_PARMNUM sv*_glist_mtime
SV_ALIST_MTIME_PARMNUM sv*_alist_mtime
SV_ALERTS_PARMNUM sv*_alerts
SV_SECURITY_PARMNUM sv*_security
SV_NUMADMIN_PARMNUM sv*_numadmin
SV_LANMASK_PARMNUM sv*_lanmask
SV_GUESTACC_PARMNUM sv*_guestacc
SV_CHDEVQ_PARMNUM sv*_chdevq
SV_CHDEVJOBS_PARMNUM sv*_chdevjobs
SV_CONNECTIONS_PARMNUM sv*_connections
SV_SHARES_PARMNUM sv*_shares
SV_OPENFILES_PARMNUM sv*_openfiles
SV_SESSOPENS_PARMNUM sv*_sessopens
SV_SESSVCS_PARMNUM sv*_sessvcs
SV_SESSREQS_PARMNUM sv*_sessreqs
SV_OPENSEARCH_PARMNUM sv*_opensearch
SV_ACTIVELOCKS_PARMNUM sv*_activelocks
SV_NUMREQBUF_PARMNUM sv*_numreqbuf
SV_SIZREQBUF_PARMNUM sv*_sizreqbuf
SV_NUMBIGBUF_PARMNUM sv*_numbigbuf
SV_NUMFILETASKS_PARMNUM sv*_numfiletasks
SV_ALERTSCHED_PARMNUM sv*_alertsched
SV_ERRORALERT_PARMNUM sv*_erroralert
SV_LOGONALERT_PARMNUM sv*_logonalert
SV_ACCESSALERT_PARMNUM sv*_accessalert
SV_DISKALERT_PARMNUM sv*_diskalert
SV_NETIOALERT_PARMNUM sv*_netioalert
SV_MAXAUDITSZ_PARMNUM sv*_maxauditsz
SV_SRVHEURISTICS_PARMNUM sv*_srvheuristics
SV_TIMESOURCE_PARMNUM sv*_timesource
 

次のコード サンプルは、 NetServerSetInfo 関数を呼び出す方法を示しています。 このサンプルでは NetServerSetInfo を呼び出し、level パラメーターを 1005 (必須) として指定して、SERVER_INFO_1005構造体のsv1005_comment メンバーを設定します。

#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 = 1005;
   SERVER_INFO_1005 si;
   NET_API_STATUS nStatus;

   if (argc != 3)
   {
      fwprintf(stderr, L"Usage: %s \\\\ServerName Comment\n", argv[0]);
      exit(1);
   }
   //
   // Fill in SERVER_INFO_1005 structure member.
   //
   si.sv1005_comment = (LPTSTR) argv[2];
   //
   // Call the NetServerSetInfo function, 
   //  specifying level 1005.
   //
   nStatus = NetServerSetInfo(argv[1],
                              dwLevel,
                              (LPBYTE)&si,
                              NULL);
   //
   // Display the result of the call.
   //
   if (nStatus == NERR_Success)
      fwprintf(stderr, L"Comment reset\n", argv[2]);
   else
      fprintf(stderr, "A system error has occurred: %d\n", nStatus);
   return 0;
}

要件

   
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー lmserver.h (Include Lm.h)
Library Netapi32.lib
[DLL] Netapi32.dll

関連項目

NetServerGetInfo

ネットワーク管理機能

ネットワーク管理の概要

SERVER_INFO_101

SERVER_INFO_102

SERVER_INFO_402

SERVER_INFO_403

サーバー関数