在C++中帮助使用NETUSERADODE()和NETROLAL GROUPADADAMEMPS()
所以我想我差点就成功了。我使用一个函数创建虚拟帐户,并编写第二个函数将其添加到远程桌面组。问题是,管理员帐户是登录的帐户,所以我不确定如何指定要添加到组中的帐户。这是我的密码 正在正确创建用户在C++中帮助使用NETUSERADODE()和NETROLAL GROUPADADAMEMPS(),c++,winapi,C++,Winapi,所以我想我差点就成功了。我使用一个函数创建虚拟帐户,并编写第二个函数将其添加到远程桌面组。问题是,管理员帐户是登录的帐户,所以我不确定如何指定要添加到组中的帐户。这是我的密码 正在正确创建用户 void AddRDPUser() { USER_INFO_1 ui; DWORD dwLevel = 1; DWORD dwError = 0; NET_API_STATUS nStatus; ui.usri1_name = L"BrettXFac
void AddRDPUser()
{
USER_INFO_1 ui;
DWORD dwLevel = 1;
DWORD dwError = 0;
NET_API_STATUS nStatus;
ui.usri1_name = L"BrettXFactor";
ui.usri1_password = L"XfactorsServer96";
ui.usri1_priv = USER_PRIV_USER;
ui.usri1_home_dir = NULL;
ui.usri1_comment = NULL;
ui.usri1_flags = UF_SCRIPT;
ui.usri1_script_path = NULL;
nStatus = NetUserAdd(NULL, dwLevel, (LPBYTE)&ui, &dwError);
}
但是我不知道如何指定将他们添加到此组,因为他们没有登录。任何帮助都将不胜感激
void AddToGroup()
{
LOCALGROUP_MEMBERS_INFO_3 lgmi3;
DWORD dwLevel = 3;
DWORD totalEntries = 1;
NET_API_STATUS nStatus;
LPCWSTR TargetGroup = L"Remote Desktop Users";
LPSTR sBuffer = NULL;
memset(sBuffer, 0, 255);
DWORD nBuffSize = sizeof(sBuffer);
if(GetUserNameEx(NameDnsDomain, sBuffer, &nBuffSize)==0)
{
Msg("Failed to add User to Group\n");
return;
}
LPWSTR user_name = (LPWSTR)sBuffer;
lgmi3.lgrmi3_domainandname = user_name;
nStatus = NetLocalGroupAddMembers(NULL, TargetGroup, 3,
(LPBYTE)&lgmi3, totalEntries);
}
无意冒犯,但您似乎根本不知道自己在用代码做什么。您没有将当前用户添加到目标组;您正在向其中添加刚刚创建的用户,对吗?那你为什么打电话给GetUserNameEx?只需使用新用户的名称:
lgmi3.lgrmi3_domainandname = L"BrettXFactor";
很抱歉,我以前从未使用过StackOverflow,而且它似乎没有使用与普通论坛相同的过程。它看起来更像是你提出一个问题,得到一个答案,然后发布一个新问题。谢谢你的提醒!我让它工作了,你说的对,我被搞糊涂了。我试图使用GetUserNameEx获取它们所属的域,但有人提到,自从我创建了它,它们就位于本地域中。谢谢你的帮助!