2012-03-09 15 views
5

Sto creando un utente con l'API NetUserAdd. Ritorna con successo, l'utente ha una cartella Utente e posso vedere il nome utente con wmic useraccount get name. Tuttavia, l'utente creato non è visibile sotto il pannello di controllo, né sulla schermata di accesso. Suppongo di dover aggiungere l'utente a qualche gruppo ma non so quale o come.NetUserAdd() riuscito, ma l'utente è "invisibile"

Ecco come ho creato l'utente:

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

Come posso rendere l'utente visibile nella schermata di accesso?

+1

Intendi qualcosa come questo http://stackoverflow.com/q/93771/960757? – TLama

+0

Questo non ha funzionato, sfortunatamente. –

+0

Inoltre, nessuno degli altri utenti aveva una voce lì, quindi deve esserci un altro modo. –

risposta

2

L'utente non è stato visualizzato nella schermata di benvenuto perché non è stato aggiunto al gruppo Utenti. Ecco come fare:

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

L'utente è stato creato ma è necessario aggiungerlo al gruppo utenti utilizzando NetLocalGroupAddMembers.

EDIT: Ho appena realizzato che stavo fornendo il metodo per .NET. Vedi questo example per C++.

+0

Quindi il gruppo si chiama "utenti"? E no, non ho bisogno di p/invoke, vedere i tag :) –

+0

Sì, BUILTIN \ Users. Ho modificato la mia risposta ora. –

+0

Sì, grazie per lo sforzo. Per favore sii paziente, non sto lavorando nei fine settimana :). Tornerò da te quando l'ho controllato lunedì. –

Problemi correlati