网站首页  词典首页

请输入您要查询的函数:

 

术语 netusergetlocalgroups
释义 NetUserGetLocalGroups
语法:
C++
NET_API_STATUS NetUserGetLocalGroups(
__in LPCWSTR servername,
__in LPCWSTR username,
__in DWORD level,
__in DWORD flags,
__out LPBYTE *bufptr,
__in DWORD prefmaxlen,
__out LPDWORD entriesread,
__out LPDWORD totalentries
);
NetUserGetLocalGroups功能
该NetUserGetLocalGroups函数检索一个指定哪些用户属于本地组的列表。
参数
服务器名 [in]
一个常量字符串,它指定的DNS或NetBIOS的远程服务器上的功能是执行名称的指针。如果该参数为NULL,则使用本地计算机。
用户名 [in]
一个常量字符串指定用户对要返回本地组成员信息的名称的指针。如果该字符串的形式域名\\用户名的用户名,预计该域中找到。如果字符串形式的用户名是用户名,预计在该服务器名参数指定的服务器上找到。有关详细信息,请参见备注部分。
Level [in]
数据的信息化Level。此参数可以是以下值。
ValueMeaning
0Return的名称给用户所属的本地组。在bufptr参数指向一个LOCALGROUP_USERS_INFO_0结构的数组。
旗 [in]
一组标志位掩码,影响操作。目前,只有价值定义的LG_INCLUDE_INDIRECT。如果此位被设置,函数也返回了,地方团体的名称,用户是间接的成员(即用户在一个全局组本身就是一个或多个本地组成员的成员资格)。
bufptr [out]
一个缓冲区,接收数据的指针。这一数据格式取决于Level的参数值。此缓冲区分配制度,必须使用NetApiBufferFree释放功能。请注意,您必须释放缓冲区,即使函数ERROR_MORE_DATA失败。
prefmaxlen [in]
首选的最大长度,以字节为单位,在返回的数据。如果MAX_PREFERRED_LENGTH在此参数指定的函数分配用于数据所需的内存量。如果其他值在这个参数指定,它可以限制的字节数函数返回。如果缓冲区大小不足以容纳所有作品,该函数返回ERROR_MORE_DATA。有关更多信息,请参阅网络管理功能,缓冲器和网络管理功能缓冲区长度。
entriesread [out]
一个值,接收元素计数实际列举的指针。
totalentries [out]
一个值,得到了本来可以参赛作品总数的指针枚举。
返回值
如果函数成功,返回值是NERR_Success。
如果函数失败,返回值可以是下面的错误代码之一。
返回codeDescription
ERROR_ACCESS_DENIEDThe用户不具有访问权限所要求的资料。此错误也返回服务器名参数,如果有一个尾随的空白。
ERROR_INVALID_LEVELThe系统调用级别不正确。此错误,则返回参数的Level,如果没有指定为0。
ERROR_INVALID_PARAMETERA参数不正确。返回此错误,如果flags参数包含一个值比LG_INCLUDE_INDIRECT等。
ERROR_MORE_DATAMore项可用。指定一个足够大的缓冲区接收的所有条目。
ERROR_NOT_ENOUGH_MEMORYInsufficient记忆来完成操作。
NERR_DCNotFoundThe不是域控制器可以找到。
NERR_UserNotFoundThe用户无法找到。则返回此错误,如果用户无法找到。
RPC_S_SERVER_UNAVAILABLEThe RPC服务器不可用。返回此错误,如果服务器名参数找不到。
备注
如果您是Active Directory的程序,您可以调用某些Active Directory服务接口(ADSI)的方法来达到同样的功能,您可以通过调用用户的网络管理功能。有关更多信息,请参阅IADsUser和IADsComputer。
如果您调用域控制器上运行Active Directory的这一功能,允许访问或拒绝的访问控制列表的安全对象(ACL)的基础。默认的ACL允许所有经过身份验证的用户和“前成员Windows2000兼容访问”组查看信息。如果您调用一个成员服务器或工作站,所有的身份验证的用户可以查看此功能的信息。有关匿名访问的信息,并限制在这些平台上匿名访问,看到了网络管理功能的安全要求。欲了解更多有关的ACL,ACE的,和访问令牌信息,请访问控制模型。
域的对象的安全描述符用于执行此函数访问检查。调用者必须在域对象读取属性权限。
要检索全球团体名单,指定用户所属的,您可以调用NetUserGetGroups功能。
用户帐户名称被限制为20个字符和组名称被限制为256个字符。此外,帐户名称不能终止的期间,他们不能包含逗号或以下打印字符:“,/,\\,[,]:,|,”,“+,=,,,?, *.名称也不能包括在1-31范围内,这些非打印字符。
实例
下面的代码示例演示如何以检索到的用户,以所属的NetUserGetLocalGroups调用本地组的列表功能。该范例调用NetUserGetLocalGroups,指定信息化Level0(LOCALGROUP_USERS_INFO_0)。通过项目的样品循环并打印每个本地组的成员的用户名。如果所有可用的项目没有列举,也打印的项数和实际列举的项目总数。最后,代码示例释放的信息缓冲区分配的内存。
#ifndef UNICODE
#define UNICODE
#endif
#pragma comment(lib, "netapi32.lib")
#include
#include
#include
#include
int wmain(int argc, wchar_t *argv[])
{
LPLOCALGROUP_USERS_INFO_0 pBuf = NULL;
DWORD dwLevel = 0;
DWORD dwFlags = LG_INCLUDE_INDIRECT ;
DWORD dwPrefMaxLen = MAX_PREFERRED_LENGTH;
DWORD dwEntriesRead = 0;
DWORD dwTotalEntries = 0;
NET_API_STATUS nStatus;
if (argc != 3)
{
fwprintf(stderr, L"Usage: %s \\\\\\\\ServerName UserName\\n", argv[0]);
exit(1);
}
//
// Call the NetUserGetLocalGroups function
// specifying information level 0.
//
// The LG_INCLUDE_INDIRECT flag specifies that the
// function should also return the names of the local
// groups in which the user is indirectly a member.
//
nStatus = NetUserGetLocalGroups(argv[1],
argv[2],
dwLevel,
dwFlags,
(LPBYTE *) &pBuf,
dwPrefMaxLen,
&dwEntriesRead,
&dwTotalEntries);
//
// If the call succeeds,
//
if (nStatus == NERR_Success)
{
LPLOCALGROUP_USERS_INFO_0 pTmpBuf;
DWORD i;
DWORD dwTotalCount = 0;
if ((pTmpBuf = pBuf) != NULL)
{
fprintf(stderr, "\\nLocal group(s):\\n");
//
// Loop through the entries and
// print the names of the local groups
// to which the user belongs.
//
for (i = 0; i < dwEntriesRead; i++)
{
assert(pTmpBuf != NULL);
if (pTmpBuf == NULL)
{
fprintf(stderr, "An access violation has occurred\\n");
break;
}
wprintf(L"\\t-- %s\\n", pTmpBuf->lgrui0_name);
pTmpBuf++;
dwTotalCount++;
}
}
//
// If all available entries were
// not enumerated, print the number actually
// enumerated and the total number available.
//
if (dwEntriesRead < dwTotalEntries)
fprintf(stderr, "\\nTotal entries: %d", dwTotalEntries);
//
// Otherwise, just print the total.
//
printf("\\nEntries enumerated: %d\\n", dwTotalCount);
}
else
fprintf(stderr, "A system error has occurred: %d\\n", nStatus);
//
// Free the allocated memory.
//
if (pBuf != NULL)
NetApiBufferFree(pBuf);
return 0;
}
要求:
最低支持:client-Windows 2000专业版
最低支持server-Windows 2000服务器
HeaderLmaccess.h(包括Lm.h)
LibraryNetapi32.lib
DLLNetapi32.dll
参见
网络管理概述
网络管理功能
用户功能
NetUserGetGroups
LOCALGROUP_USERS_INFO_0
如果有任何问题和意见,请发送给微软(wsddocfb@microsoft.com)
生成日期:2009年8月13日
==英文原文==NetUserGetLocalGroups Function
The NetUserGetLocalGroups function retrieves a list of local groups to which a specified user belongs.
Syntax
C++
NET_API_STATUS NetUserGetLocalGroups(
__in LPCWSTR servername,
__in LPCWSTR username,
__in DWORD level,
__in DWORD flags,
__out LPBYTE *bufptr,
__in DWORD prefmaxlen,
__out LPDWORD entriesread,
__out LPDWORD totalentries
);
Parameters
servername [in]
A pointer to a constant string that specifies the DNS or NetBIOS name of the remote server on which the function is to execute. If this parameter is NULL, the local computer is used.
username [in]
A pointer to a constant string that specifies the name of the user for which to return local group membership information. If the string is of the form DomainName\\UserName the user name is expected to be found on that domain. If the string is of the form UserName, the user name is expected to be found on the server specified by the servername parameter. For more information, see the Remarks section.
level [in]
The information level of the data. This parameter can be the following value.
ValueMeaning
0Return the names of the local groups to which the user belongs. The bufptr parameter points to an array of LOCALGROUP_USERS_INFO_0 structures.

flags [in]
A bitmask of flags that affect the operation. Currently, only the value defined is LG_INCLUDE_INDIRECT. If this bit is set, the function also returns the names of the local groups in which the user is indirectly a member (that is, the user has membership in a global group that is itself a member of one or more local groups).
bufptr [out]
A pointer to the buffer that receives the data. The format of this data depends on the value of the level parameter. This buffer is allocated by the system and must be freed using the NetApiBufferFree function. Note that you must free the buffer even if the function fails with ERROR_MORE_DATA.
prefmaxlen [in]
The preferred maximum length, in bytes, of the returned data. If MAX_PREFERRED_LENGTH is specified in this parameter, the function allocates the amount of memory required for the data. If another value is specified in this parameter, it can restrict the number of bytes that the function returns. If the buffer size is insufficient to hold all entries, the function returns ERROR_MORE_DATA. For more information, see Network Management Function Buffers and Network Management Function Buffer Lengths .
entriesread [out]
A pointer to a value that receives the count of elements actually enumerated.
totalentries [out]
A pointer to a value that receives the total number of entries that could have been enumerated.
Return Value
If the function succeeds, the return value is NERR_Success.
If the function fails, the return value can be one of the following error codes.
Return codeDescription
ERROR_ACCESS_DENIEDThe user does not have access rights to the requested information. This error is also returned if the servername parameter has a trailing blank.
ERROR_INVALID_LEVELThe system call level is not correct. This error is returned if the level parameter was not specified as 0.
ERROR_INVALID_PARAMETERA parameter is incorrect. This error is returned if the flags parameter contains a value other than LG_INCLUDE_INDIRECT.
ERROR_MORE_DATAMore entries are available. Specify a large enough buffer to receive all entries.
ERROR_NOT_ENOUGH_MEMORYInsufficient memory was available to complete the operation.
NERR_DCNotFoundThe domain controller could not be found.
NERR_UserNotFoundThe user could not be found. This error is returned if the username could not be found.
RPC_S_SERVER_UNAVAILABLEThe RPC server is unavailable. This error is returned if the servername parameter could not be found.

Remarks
If you are programming for Active Directory, you may be able to call certain Active Directory Service Interface (ADSI) methods to achieve the same functionality you can achieve by calling the network management user functions. For more information, see IADsUser and IADsComputer .
If you call this function on a domain controller that is running Active Directory, access is allowed or denied based on the access control list (ACL) for the securable object . The default ACL permits all authenticated users and members of the " Pre-Windows2000 compatible access " group to view the information. If you call this function on a member server or workstation, all authenticated users can view the information. For information about anonymous access and restricting anonymous access on these platforms, see Security Requirements for the Network Management Functions . For more information on ACLs, ACEs, and access tokens, see Access Control Model .
The security descriptor of the Domain object is used to perform the access check for this function. The caller must have Read Property permission on the Domain object.
To retrieve a list of global groups to which a specified user belongs, you can call the NetUserGetGroups function.
User account names are limited to 20 characters and group names are limited to 256 characters. In addition, account names cannot be terminated by a period and they cannot include commas or any of the following printable characters: ", /, \\, [, ], :, |, <, >, +, =, ;, ?, *. Names also cannot include characters in the range 1-31, which are nonprintable.
Examples
The following code sample demonstrates how to retrieve a list of the local groups to which a user belongs with a call to the NetUserGetLocalGroups function. The sample calls NetUserGetLocalGroups, specifying information level 0 ( LOCALGROUP_USERS_INFO_0 ). The sample loops through the entries and prints the name of each local group in which the user has membership. If all available entries are not enumerated, it also prints the number of entries actually enumerated and the total number of entries available. Finally, the code sample frees the memory allocated for the information buffer.
#ifndef UNICODE
#define UNICODE
#endif
#pragma comment(lib, "netapi32.lib")
#include
#include
#include
#include
int wmain(int argc, wchar_t *argv[])
{
LPLOCALGROUP_USERS_INFO_0 pBuf = NULL;
DWORD dwLevel = 0;
DWORD dwFlags = LG_INCLUDE_INDIRECT ;
DWORD dwPrefMaxLen = MAX_PREFERRED_LENGTH;
DWORD dwEntriesRead = 0;
DWORD dwTotalEntries = 0;
NET_API_STATUS nStatus;
if (argc != 3)
{
fwprintf(stderr, L"Usage: %s \\\\\\\\ServerName UserName\\n", argv[0]);
exit(1);
}
//
// Call the NetUserGetLocalGroups function
// specifying information level 0.
//
// The LG_INCLUDE_INDIRECT flag specifies that the
// function should also return the names of the local
// groups in which the user is indirectly a member.
//
nStatus = NetUserGetLocalGroups(argv[1],
argv[2],
dwLevel,
dwFlags,
(LPBYTE *) &pBuf,
dwPrefMaxLen,
&dwEntriesRead,
&dwTotalEntries);
//
// If the call succeeds,
//
if (nStatus == NERR_Success)
{
LPLOCALGROUP_USERS_INFO_0 pTmpBuf;
DWORD i;
DWORD dwTotalCount = 0;
if ((pTmpBuf = pBuf) != NULL)
{
fprintf(stderr, "\\nLocal group(s):\\n");
//
// Loop through the entries and
// print the names of the local groups
// to which the user belongs.
//
for (i = 0; i < dwEntriesRead; i++)
{
assert(pTmpBuf != NULL);
if (pTmpBuf == NULL)
{
fprintf(stderr, "An access violation has occurred\\n");
break;
}
wprintf(L"\\t-- %s\\n", pTmpBuf->lgrui0_name);
pTmpBuf++;
dwTotalCount++;
}
}
//
// If all available entries were
// not enumerated, print the number actually
// enumerated and the total number available.
//
if (dwEntriesRead < dwTotalEntries)
fprintf(stderr, "\\nTotal entries: %d", dwTotalEntries);
//
// Otherwise, just print the total.
//
printf("\\nEntries enumerated: %d\\n", dwTotalCount);
}
else
fprintf(stderr, "A system error has occurred: %d\\n", nStatus);
//
// Free the allocated memory.
//
if (pBuf != NULL)
NetApiBufferFree(pBuf);
return 0;
}
Requirements
Minimum supported clientWindows 2000 Professional
Minimum supported serverWindows 2000 Server
HeaderLmaccess.h (include Lm.h)
LibraryNetapi32.lib
DLLNetapi32.dll
See Also
Network Management Overview
Network Management Functions
User Functions
NetUserGetGroups
LOCALGROUP_USERS_INFO_0
Send comments about this topic to Microsoft
Build date: 8/13/2009
==原始网址==http://msdn.microsoft.com/en-us/library/aa370655(VS.85).aspx\n
随便看

 

windows api函数参考手册包含2258条windows api函数文档,详细介绍nodejs、java、rust调用windows api的方法技巧,是学习windows api编程的入门中文文档。

 

Copyright © 2004-2023 Winrtm.com All Rights Reserved
京ICP备2021023879号-40 更新时间:2024/10/6 13:22:59