Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Неполучается создать пользователя

841
07 января 2009 года
_nic
199 / / 29.07.2006
Вот нашол тут 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 );

Только вот он неработает :( Новый пользователь непоявляется.Есть у кого нибудь какие то мысли по чему?Может процессу прав нехватает?
1
07 января 2009 года
kot_
7.3K / / 20.01.2000
Не проще ли вместо того, что бы сразу лезть на форум хотябы проверить статус ошибки которую вы получаете?
841
07 января 2009 года
_nic
199 / / 29.07.2006
Для меня ситуация малопонятная.Так как GetLastError после вызова NetUserAdd возвращяет код ошибки 997 ,только вот причем здесь ERROR_IO_PENDING :confused:
14
12 января 2009 года
Phodopus
3.3K / / 19.06.2008
Правильный вопрос вам - при чем здесь GetLastError() ?
NetUserAdd уже возвращает ошибку. Курите MSDN вдумчивее.
841
12 января 2009 года
_nic
199 / / 29.07.2006
Хм да при повторных выполнениях возвращяется NERR_UserExists,значит этот пользователь как бы создалсяю. Но дело в том что через средства администрирования виндовс его невидно, как такое может быть :confused:
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог