Помощь Использование NetuserAdd () и NetLocalGroupAddMembers () в C ++ - PullRequest
1 голос
/ 16 января 2010

Так что я думаю, что почти понял. Я создаю свою фиктивную учетную запись с одной функцией и написал вторую функцию, чтобы добавить ее в группу удаленных рабочих столов. Проблема в том, что вошла учетная запись администратора, поэтому я не уверен, как указать, какую учетную запись добавить в группу. Вот мой код ...

Пользователь создается правильно ...

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

1 Ответ

0 голосов
/ 17 января 2010

Без обид, но вы, похоже, совсем не знаете, что делаете с кодом. Вы не добавляете текущего пользователя в целевую группу; вы добавляете пользователя, которого вы только что создали, правильно? Тогда почему вы звоните GetUserNameEx? Просто используйте имя нового пользователя:

lgmi3.lgrmi3_domainandname = L"BrettXFactor";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...