NetLocalGroupEnum 関数 (lmaccess.h)

NetLocalGroupEnum 関数は、指定されたサーバー上の各ローカル グループ アカウントに関する情報を返します。

構文

NET_API_STATUS NET_API_FUNCTION NetLocalGroupEnum(
  [in]      LPCWSTR    servername,
  [in]      DWORD      level,
  [out]     LPBYTE     *bufptr,
  [in]      DWORD      prefmaxlen,
  [out]     LPDWORD    entriesread,
  [out]     LPDWORD    totalentries,
  [in, out] PDWORD_PTR resumehandle
);

パラメーター

[in] servername

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

[in] level

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

説明
0
ローカル グループ名を返します。 bufptr パラメーターは、LOCALGROUP_INFO_0構造体の配列を指します。
1
ローカル グループ名と、各グループに関連付けられているコメントを返します。 bufptr パラメーターは、LOCALGROUP_INFO_1構造体の配列を指します。

[out] bufptr

情報構造体を受け取るバッファーのアドレスへのポインター。 このデータの形式は、 level パラメーターの値によって異なります。 このバッファーはシステムによって割り当てられ、 NetApiBufferFree 関数を使用して解放する必要があります。 関数が ERROR_MORE_DATA で失敗した場合でも、バッファーを解放する必要があることに注意してください。

[in] prefmaxlen

返されるデータの推奨される最大長をバイト単位で指定します。 MAX_PREFERRED_LENGTHを指定した場合、関数はデータに必要なメモリ量を割り当てます。 このパラメーターに別の値を指定すると、関数から返されるバイト数を制限できます。 バッファー サイズが不十分で、すべてのエントリを保持できる場合、関数は ERROR_MORE_DATAを返します。 詳細については、「 ネットワーク管理機能バッファー 」および「 ネットワーク管理機能バッファーの長さ」を参照してください。

[out] entriesread

実際に列挙された要素の数を受け取る値へのポインター。

[out] totalentries

現在の再開位置から列挙された可能性のあるエントリのおおよその合計数を受け取る値へのポインター。 エントリの合計数はヒントにすぎません。 エントリの正確な数の決定の詳細については、次の「解説」セクションを参照してください。

[in, out] resumehandle

既存のローカル グループ検索を続行するために使用される再開ハンドルを含む値へのポインター。 最初の呼び出しではハンドルを 0 にし、後続の呼び出しでは変更せずに残す必要があります。 このパラメーターが NULL の場合、再開ハンドルは格納されません。 詳細については、「解説」を参照してください。

戻り値

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

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

リターン コード 説明
ERROR_ACCESS_DENIED
ユーザーには、要求された情報へのアクセス権がありません。
ERROR_MORE_DATA
その他のエントリを使用できます。 すべてのエントリを受信するのに十分な大きさのバッファーを指定します。
NERR_InvalidComputer
コンピューター名が無効です。
NERR_BufTooSmall
戻りバッファーが小さすぎます。

解説

Active Directory を実行しているドメイン コントローラーでこの関数を呼び出すと、 セキュリティ保護可能なオブジェクトのアクセス制御リスト (ACL) に基づいてアクセスが許可または拒否されます。 既定の ACL では、"Pre-Windows 2000 互換アクセス" グループのすべての認証済みユーザーとメンバーに情報の表示が許可されます。 メンバー サーバーまたはワークステーションでこの関数を呼び出すと、すべての認証済みユーザーが情報を表示できます。 これらのプラットフォームでの匿名アクセスと匿名アクセスの制限については、「 ネットワーク管理機能のセキュリティ要件」を参照してください。 ACL、ACE、およびアクセス トークンの詳細については、「存取控制 モデル」を参照してください。

関数は、呼び出し元が読み取りアクセス権を持つ情報のみを返します。 呼び出し元は、Domain オブジェクトへのリスト コンテンツ アクセス権と、システム コンテナーにある SAM サーバー オブジェクトに対する SAM ドメイン全体のアクセス権を列挙する必要があります。

ローカル グループの正確な合計数を確認するには、ツリー全体を列挙する必要があります。これはコストのかかる操作になる可能性があります。 ツリー全体を列挙するには、 resumehandle パラメーターを使用して連続する呼び出しの列挙を続行し、 entriesread パラメーターを使用してローカル グループの合計数を累積します。 アプリケーションがドメイン コントローラーと通信している場合は、 ADSI LDAP プロバイダー を使用して、この種類のデータをより効率的に取得することを検討する必要があります。 ADSI LDAP プロバイダーは、さまざまな ADSI インターフェイスをサポートする ADSI オブジェクトのセットを実装します。 詳細については、「 ADSI サービス プロバイダー」を参照してください。

ユーザー アカウント名は 20 文字に制限され、グループ名は 256 文字に制限されます。 さらに、アカウント名をピリオドで終えることはできません。また、コンマまたは"、/、、[、]、:、|<>、+、=、;、?、*のいずれかの印刷可能な文字を含めることはできません。 名前には、印刷できない 1 から 31 の範囲の文字を含めることもできます。

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

要件

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

関連項目

LOCALGROUP_INFO_0

LOCALGROUP_INFO_1

ローカル グループ関数

NetLocalGroupGetInfo

NetLocalGroupGetMembers

NetQueryDisplayInformation

ネットワーク管理機能

ネットワーク管理の概要