NetUserAdd()成功,但用户是“隐形”

我正在用NetUserAdd API创build一个用户。 它成功返回,用户有一个用户文件夹,我可以看到用户名与wmic useraccount get name 。 但是,创build的用户在控制面板下不可见,也不在login屏幕上。 我假设我需要将用户添加到某个组,但是我不知道是哪个或哪个。

以下是我如何创build用户:

 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); 

如何使用户在login屏幕上可见?

您已创建用户,但需要使用NetLocalGroupAddMembers将其添加到用户组。

编辑:刚刚意识到我提供了.NET的方法。 看到这个例子的C ++。

该用户没有显示在欢迎屏幕上,因为它没有被添加到用户组中。 这是如何做到这一点:

 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);