NetLocalGroupGetMembers 関数 (lmaccess.h)
NetLocalGroupGetMembers 関数は、セキュリティ データベース (セキュリティ アカウント マネージャー (SAM) データベース、またはドメイン コントローラーの場合は Active Directory) 内の特定のローカル グループのメンバーの一覧を取得します。 ローカル グループ メンバーには、ユーザーまたはグローバル グループを指定できます。
構文
NET_API_STATUS NET_API_FUNCTION NetLocalGroupGetMembers(
[in] LPCWSTR servername,
[in] LPCWSTR localgroupname,
[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] localgroupname
メンバーを一覧表示するローカル グループの名前を指定する定数文字列へのポインター。 詳細については、「解説」を参照してください。
[in] level
データの情報レベルを指定します。 このパラメーターには、次の値のいずれかを指定できます。
値 | 説明 |
---|---|
|
ローカル グループ メンバーに関連付けられている セキュリティ識別子 (SID) を返します。 bufptr パラメーターは、LOCALGROUP_MEMBERS_INFO_0構造体の配列を指します。 |
|
ローカル グループ メンバーに関連付けられている SID とアカウント情報を返します。 bufptr パラメーターは、LOCALGROUP_MEMBERS_INFO_1構造体の配列を指します。 |
|
SID、アカウント情報、およびローカル グループ メンバーに関連付けられているドメイン名を返します。 bufptr パラメーターは、LOCALGROUP_MEMBERS_INFO_2構造体の配列を指します。 |
|
ローカル グループ メンバーのアカウント名とドメイン名を返します。 bufptr パラメーターは、LOCALGROUP_MEMBERS_INFO_3構造体の配列を指します。 |
[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。
関数が失敗した場合、戻り値には次のいずれかのエラー コードを指定できます。
リターン コード | 説明 |
---|---|
|
ユーザーには、要求された情報へのアクセス権がありません。 |
|
コンピューター名が無効です。 |
|
その他のエントリを使用できます。 すべてのエントリを受信するのに十分な大きさのバッファーを指定します。 |
|
指定されたローカル グループが存在しません。 |
解説
Active Directory を実行しているドメイン コントローラーでこの関数を呼び出すと、 セキュリティ保護可能なオブジェクトのアクセス制御リスト (ACL) に基づいてアクセスが許可または拒否されます。 既定の ACL では、"Pre-Windows 2000 互換アクセス" グループのすべての認証済みユーザーとメンバーに情報の表示が許可されます。 メンバー サーバーまたはワークステーションでこの関数を呼び出すと、すべての認証済みユーザーが情報を表示できます。 これらのプラットフォームでの匿名アクセスと匿名アクセスの制限については、「 ネットワーク管理機能のセキュリティ要件」を参照してください。 ACL、ACE、およびアクセス トークンの詳細については、「存取控制 モデル」を参照してください。
LocalGroup オブジェクトのセキュリティ記述子は、この関数のアクセスチェックを実行するために使用されます。
ユーザー アカウント名は 20 文字に制限され、グループ名は 256 文字に制限されます。 さらに、アカウント名をピリオドで終えることはできません。また、コンマまたは"、/、、[、]、:、|<>、+、=、;、?、*のいずれかの印刷可能な文字を含めることはできません。 名前には、印刷できない 1 から 31 の範囲の文字を含めることもできます。
Active Directory のプログラミングを行っている場合は、特定の Active Directory サービス インターフェイス (ADSI) メソッドを呼び出して、ネットワーク管理ローカル グループ関数を呼び出すことで実現できるのと同じ機能を実現できる場合があります。 詳細については、「 IADsGroup」を参照してください。
この関数 がERROR_MORE_DATAを返す場合は、 ERROR_SUCCESS または NERR_success が返されるまで繰り返し呼び出す必要があります。 これを行わないと、RPC 接続リークが発生する可能性があります。
要件
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | lmaccess.h (include Lm.h) |
Library | Netapi32.lib |
[DLL] | Netapi32.dll |