NetGroupGetUsers 関数 (lmaccess.h)
NetGroupGetUsers 関数は、セキュリティ データベース内の特定のグローバル グループ (セキュリティ アカウント マネージャー (SAM) データベース、またはドメイン コントローラーの場合は Active Directory) のメンバーの一覧を取得します。
構文
NET_API_STATUS NET_API_FUNCTION NetGroupGetUsers(
[in] LPCWSTR servername,
[in] LPCWSTR groupname,
[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] groupname
メンバーがリストされるグローバル グループの名前を指定する定数文字列へのポインター。 詳細については、「解説」を参照してください。
[in] level
要求されたデータの情報レベル。 このパラメーターには、次の値のいずれかを指定できます。
値 | 説明 |
---|---|
|
グローバル グループのメンバー名を返します。 bufptr パラメーターは、GROUP_USERS_INFO_0構造体の配列を指します。 |
|
グローバル グループのメンバー名と属性を返します。 bufptr パラメーターは、GROUP_USERS_INFO_1構造体の配列を指します。 |
[out] bufptr
情報構造体を受け取るバッファーのアドレスへのポインター。 システムは、このバッファーにメモリを割り当てます。 メモリの割り当てを解除するには、 NetApiBufferFree 関数を呼び出す必要があります。 関数がERROR_MORE_DATAで失敗した場合でも、バッファーを解放する必要があることに注意してください。
[in] prefmaxlen
返されるデータの推奨される最大長 (バイト単位)。 MAX_PREFERRED_LENGTHを指定すると、データを保持するために必要なメモリ量が関数によって割り当てられます。 このパラメーターに別の値を指定すると、関数から返されるバイト数を制限できます。 バッファー サイズが不十分で、すべてのエントリを保持するには、関数は ERROR_MORE_DATAを返します。 詳細については、「 ネットワーク管理機能バッファー 」および「 ネットワーク管理機能バッファーの長さ」を参照してください。
[out] entriesread
実際に列挙された要素の数を受け取る値へのポインター。
[out] totalentries
現在の再開位置から列挙された可能性があるエントリの合計数を受け取る値へのポインター。
[in, out] ResumeHandle
既存のユーザー列挙を続行するために使用される再開ハンドルを含む変数へのポインター。 最初の呼び出しではハンドルを 0 にし、後続の呼び出しでは変更しない必要があります。 ResumeHandle パラメーターが NULL の場合、再開ハンドルは格納されません。
戻り値
関数が成功した場合、戻り値はNERR_Success。
関数が失敗した場合、戻り値は次のいずれかのエラー コードになります。
リターン コード | 説明 |
---|---|
|
ユーザーには、要求された情報へのアクセス権がありません。 |
|
システム コール レベルが正しくありません。 このエラーは、 level パラメーターが 0 または 1 以外の値として指定された場合に返されます。 |
|
その他のエントリを使用できます。 すべてのエントリを受信するのに十分な大きさのバッファーを指定します。 |
|
操作を完了するために使用できるメモリが不足していました。 |
|
コンピューター名が無効です。 |
|
bufptr パラメーターが指す構造体のグローバル グループ名が見つかりませんでした。 |
|
内部エラーが発生しました。 |
解説
Active Directory を実行しているドメイン コントローラーでこの関数を呼び出すと、 セキュリティ保護可能なオブジェクトのアクセス制御リスト (ACL) に基づいてアクセスが許可または拒否されます。 既定の ACL では、"Pre-Windows 2000 互換アクセス" グループのすべての認証済みユーザーとメンバーに情報の表示が許可されます。 メンバー サーバーまたはワークステーションでこの関数を呼び出すと、すべての認証済みユーザーが情報を表示できます。 これらのプラットフォームでの匿名アクセスと匿名アクセスの制限については、「 ネットワーク管理機能のセキュリティ要件」を参照してください。 ACL、ACE、およびアクセス トークンの詳細については、「存取控制 モデル」を参照してください。
Group オブジェクトのセキュリティ記述子は、この関数のアクセスチェックを実行するために使用されます。
既存のグローバル グループに 1 つのユーザー メンバーシップを付与するには、 NetGroupAddUser 関数を呼び出します。 グローバル グループからユーザーを削除するには、 NetGroupDelUser 関数を呼び出します。 グローバル グループのメンバーシップを置き換える方法については、「 NetGroupSetUsers」を参照してください。
ユーザー アカウント名は 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 |