NetUserEnum  6_1D2F 

The NetUserEnum function provides information about all user accounts on a server.

Security Requirements

Only members of the Administrators or Account operators local group can successfully execute NetUserEnum at levels 1 and 2. No special group membership is required at level 0 or 10.

NET_API_STATUS NetUserEnum(

    LPWSTR servername,

 

    DWORD level,

 

    DWORD filter,

 

    LPBYTE *bufptr,

 

    DWORD prefmaxlen,

 

    LPDWORD entriesread,

 

    LPDWORD totalentries,

 

    LPDWORD resume_handle

 

   );

 

 

Parameters

servername

Pointer to a Unicode string containing the name of the remote server on which the function is to execute. A NULL pointer or string specifies the local computer.

level

Specifies one of the following values to return the level of information provided.

Value

Meaning

0

The bufptr parameter points to an array of USER_INFO_0ABGYP7 structures.

1

The bufptr parameter points to an array of USER_INFO_1A9GYP7 structures.

2

The bufptr parameter points to an array of USER_INFO_2A0GYP7 structures.

3

The bufptr parameter points to an array of USER_INFO_313DSY.G structures.

10

The bufptr parameter points to an array of USER_INFO_1003DZKE structures.

11

The bufptr parameter points to an array of USER_INFO_119UDZKE structures.

12

The bufptr parameter points to an array of USER_INFO_20X.PZ7U structures.

 

filter

Specifies a filter of account types to enumerate. A value of zero implies all account types. Allowable values are:

Value

Meaning

FILTER_TEMP_DUPLICATE_ACCOUNTS

Enumerates local user account data on a domain controller.

FILTER_NORMAL_ACCOUNT

Enumerates global user account data on a computer.

FILTER_INTERDOMAIN_TRUST_ACCOUNT

Enumerates domain trust account data on a domain controller.

FILTER_WORKSTATION_TRUST_ACCOUNT

Enumerates workstation or member server account data on a domain controller.

FILTER_SERVER_TRUST_ACCOUNT

Enumerates domain controller account data on a domain controller.

 

bufptr

Pointer to the buffer in which the data set with the level parameter is stored. The returned buffer should be deallocated using the NetApiBufferFree1ARVKH1 function.

prefmaxlen

Preferred maximum length, in 8-bit bytes of returned data.

entriesread

Pointer to a DWORD that contains the actual enumerated element count.

totalentries

Pointer to a DWORD that contains the total number of entries that could have been enumerated from the current resume position. EXCEPTION: If the call is to a computer that is running LAN Manager 2.x, the totalentries parameter will always reflect the total number of entries in the database no matter where it is in the resume sequence.

resume_handle

Pointer to a DWORD that contains resume_handle, which is used to continue an existing user search. The handle should be zero on the first call and left unchanged for subsequent calls. If resume_handle is NULL, then no resume handle is stored.

 

Return Values

If the function is successful, it returns NERR_SUCCESS.

If the function fails, the return value is one of the following error codes.

Value

Meaning

ERROR_ACCESS_DENIED

The user does not have access to the requested information.

NERR_InvalidComputer

The computer name is invalid.

ERROR_MORE_DATA

More entries are available with subsequent calls.

 

Remarks

The NetUserEnum function returns the full set of USER_INFO_0 or USER_INFO_1 components. If level is set to 1, the password component of each data structure will be set to NULL to maintain password security. The NetUserEnum does not return all Windows NT system users. It returns only those users who have been added by the NetUserAdd function.

See Also

NetUserGetGroups, NetUserGetInfo, USER_INFO_0, USER_INFO_1, NetUserAdd