NetUserAdd () is successful, but the user is "invisible",

I am creating a user with an API NetUserAdd. It returns successfully, the user has a user folder, and I can see the username with wmic useraccount get name. However, the created user does not appear under the control panel or on the login screen. I assume that I need to add the user to some group, but I do not know what and how.

This is how I create a user:

USER_INFO_1 user_info;
ZeroMemory(&user_info, sizeof(user_info));
user_info.usri1_name = userName;
user_info.usri1_password = password;
user_info.usri1_priv = USER_PRIV_USER;
user_info.usri1_flags = UF_SCRIPT | UF_DONT_EXPIRE_PASSWD;

DWORD dwLevel = 1;
DWORD dwError = 0;
NET_API_STATUS nStatus = NetUserAdd(NULL, dwLevel, (LPBYTE)&user_info, &dwError);

How can I make the user visible on the login screen?

+5
source share
2 answers

The user did not appear on the welcome screen because he was not added to the Users group. Here's how to do it:

LOCALGROUP_MEMBERS_INFO_3 lmi3;
ZeroMemory(&lmi3, sizeof lmi3);
lmi3.lgrmi3_domainandname = user_info.usri1_name;
DWORD err = NetLocalGroupAddMembers(NULL, L"Users", 3, (LPBYTE) &lmi3, 1);
+2
source

, , NetLocalGroupAddMembers.

EDIT: , .NET. . ++.

+6

All Articles