c ++ - NetUserAdd () succesfuldt, men brugeren er 'usynlig'

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg opretter en bruger med API'en NetUserAdd. Den returnerer med succes, brugeren har en brugermappe, og jeg kan se brugernavnet med wmic useraccount get name. Den oprettede bruger er dog ikke synlig under kontrolpanelet , heller ikke på logonskærmen. Jeg antager, at jeg skal tilføje brugeren til en gruppe, men jeg ved ikke, hvilken eller hvilken måde.


Her er hvordan jeg opretter brugeren:


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


Hvordan kan jeg gøre brugeren synlig på logonskærmen?

Bedste reference


Du har oprettet brugeren, men du skal tilføje den til brugergruppen med NetLocalGroupAddMembers. [6]


EDIT: Bare indså, at jeg leverede metoden til .NET. Se dette eksempel til C ++.

Andre referencer 1


Brugeren viste ikke op på velkomstskærmen, fordi den ikke blev tilføjet til gruppen Brugere. Sådan gør du det:


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