NetUserAdd()成功,但是用户“不可见" [英] NetUserAdd() successful, but user is "invisible"
问题描述
我正在使用 NetUserAdd
API创建一个用户.它成功返回,该用户具有一个User文件夹,我可以看到 wmic useraccount get name
的用户名.但是,创建的用户在控制面板下或登录屏幕上均不可见.我假设我需要将该用户添加到某个组中,但是我不知道该使用哪种方式.
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?
推荐答案
该用户未出现在欢迎屏幕上,因为它没有添加到用户"组中.这是这样做的方法:
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);
这篇关于NetUserAdd()成功,但是用户“不可见"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!