5

I'm creating a user with the NetUserAdd API. It returns successfully, the user has a User folder and I can see the username with wmic useraccount get name. However, the created user is not visible under the control panel, nor on the logon screen. I assume that I need to add the user to some group but I don't know which or how.

Here is how I create the 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 logon screen?

Tamás Szelei
  • 23,169
  • 18
  • 105
  • 180

2 Answers2

6

You have created the user but you need to add it to the users group using NetLocalGroupAddMembers.

EDIT: Just realized I was providing the method for .NET. See this example for C++.

Community
  • 1
  • 1
Chibueze Opata
  • 9,856
  • 7
  • 42
  • 65
  • So is the group called "users"? And no, I don't need p/invoke, see the tags :) – Tamás Szelei Mar 09 '12 at 19:59
  • Yes, thanks for the effort. Please be patient, I'm not working in the weekends :). I will get back to you when I checked it on Monday. – Tamás Szelei Mar 11 '12 at 10:05
  • I checked your answer, and you are right, and the issue was indeed that it was not in the group. However the second part of your answer is not very accurate (neither I need a SID, neither CreateWellKnownSid would help with that). You definitely got my upvote because the issue was with group membership. – Tamás Szelei Mar 13 '12 at 10:52
2

The user was not showing up on the welcome screen because it was not added to the Users group. This is 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);
Tamás Szelei
  • 23,169
  • 18
  • 105
  • 180