PDA

Просмотр полной версии : Неполучается создать пользователя


_nic
06.01.2009, 19:58
Вот нашол тут http://borland.xportal.ru/forum/viewtopic.php?t=12828&start=5
Такой код:

PWCHAR domain = NULL;
PSID psid = NULL;

do {

//Cоздаем новый аккаунт на лоакльной машине
USER_INFO_1 ui;
DWORD dwLevel = 1;
DWORD dwError = 0;

ui.usri1_name = L"user1";
ui.usri1_password = L"1111111";
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;

NET_API_STATUS nStatus = NetUserAdd(NULL,
dwLevel,
(LPBYTE)&ui,
&dwError);

if ( nStatus != NERR_Success )
break;

//Определяем SID созданного аккаунта
DWORD sid_size = 0;
DWORD domain_size = 0;
SID_NAME_USE snu;

//Первый вызов возвратит размер буферов
LookupAccountNameW( NULL, L"user1", NULL, &sid_size,
NULL, &domain_size, &snu );

if ( !( domain = (PWCHAR)malloc( 2*(domain_size + 1 ) ) ) )
break;

if ( !( psid = malloc( sid_size ) ) )
break;

if ( !LookupAccountNameW( NULL, L"user1", psid, &sid_size,
domain, &domain_size, &snu ) )
break;

//Добавляем созданного пользователя в локальную группу администраторов
LOCALGROUP_MEMBERS_INFO_0 lmi0 = { psid };

nStatus = NetLocalGroupAddMembers( NULL,
L"Administrators",
0,
(LPBYTE)&lmi0,
1 );

} while ( 0 );

if ( domain )
free( domain );

if ( psid )
free( psid );

Только вот он неработает :( Новый пользователь непоявляется.У кого какие мысли по чему?Может процессу прав нехватает?
___________________________________________
GetLastError возвращяет ERROR_IO_PENDING Я вообще запутался :(