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
);
parameters
[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
指向接收返回信息结构的地址的指针。 此数据的格式取决于 级别 参数的值。 此缓冲区由系统分配,必须使用 NetApiBufferFree 函数释放。 请注意,即使函数失败并出现ERROR_MORE_DATA,也必须释放缓冲区。
[in] prefmaxlen
指定返回数据的首选最大长度(以字节为单位)。 如果指定MAX_PREFERRED_LENGTH,函数将分配数据所需的内存量。 如果在此参数中指定另一个值,它可以限制函数返回的字节数。 如果缓冲区大小不足以容纳所有条目,则函数将返回ERROR_MORE_DATA。 有关详细信息,请参阅 网络管理功能缓冲区 和 网络管理功能缓冲区长度。
[out] entriesread
指向接收实际枚举的元素计数的值的指针。
[out] totalentries
指向一个值的指针,该值接收可能从当前恢复位置枚举的条目总数。
[in, out] resumehandle
指向包含用于继续现有组成员搜索的恢复句柄的值的指针。 第一次调用时,句柄应为零,后续调用应保持不变。 如果此参数为 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 (包括 Lm.h) |
Library | Netapi32.lib |
DLL | Netapi32.dll |