Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не создается новый пользователь 
V
    Опции темы
Barabeo
Дата 29.10.2012, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 234
Регистрация: 2.10.2010

Репутация: нет
Всего: нет



Пытаюсь создать нового пользователя. Но код завершается с ошибкой A system error has occurred:5.
Насколько я понял нужны права администратора. Или я не прав? Как их получить программно?
Код

#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <lm.h>
#include <sstream>
#include <string.h>

using namespace std;

#pragma comment(lib, "netapi32.lib")

int main(int argc, char** argv)
{
    char compname[MAX_COMPUTERNAME_LENGTH+1];
    char temp[MAX_COMPUTERNAME_LENGTH+2];
    DWORD size = sizeof(compname)-1;
    int i,j,k,m;
        wchar_t servername[MAX_COMPUTERNAME_LENGTH+1];
    wchar_t username[MAX_COMPUTERNAME_LENGTH+2];
    wchar_t userpass[MAX_COMPUTERNAME_LENGTH+2];

    GetComputerNameA(compname,&size);//получаем имя компа
    /*
    if( !GetComputerNameA(compname,&size) )
    {
    printf( "Error of  GetComputerNameA\n" );
    return -1;
    }
    compname[MAX_COMPUTERNAME_LENGTH] = '\0';
    */
    printf("%s\n",compname);
    temp[0]='u';//добавляем букву 'u' к имени компа
    for(i=1,j=0; j<MAX_COMPUTERNAME_LENGTH; i++, j++)
    {
         temp[i] = compname[j];
    }
    temp[i]= '\0';
    printf ("%s\n",temp);//выводим имя которое будет присвоено пользователю
    
    //создаем пользователя
    USER_INFO_1 ui;
    DWORD dwLevel = 1;
    DWORD dwError = 0;
    NET_API_STATUS nStatus;
    
    //кoнвертируем имя пользователя из char в wchar_t
    MultiByteToWideChar(CP_ACP, 0, temp, MAX_COMPUTERNAME_LENGTH+2, username, MAX_COMPUTERNAME_LENGTH+2);

      //кoнвертируем имя компа из char в wchar_t
    MultiByteToWideChar(CP_ACP, 0, compname, MAX_COMPUTERNAME_LENGTH+1, servername, MAX_COMPUTERNAME_LENGTH+1);

    //устанавливаем пароль пользователю
    for(k=0,m=1; m<MAX_COMPUTERNAME_LENGTH; k++, m++)
    {
         userpass[k] = compname[m];
    }

    ui.usri1_name = username;    
    ui.usri1_password = userpass;
    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(servername, dwLevel,(LPBYTE)&ui,&dwError);

    if (nStatus == NERR_Success)
       fwprintf(stderr, L"User %s has been successfully added on %s\n",
               userpass, username);
 
    else
       fprintf(stderr, "A system error has occurred: %d\n", nStatus);

    system("pause");
    return 0;
}

PM MAIL   Вверх
NoviceF
Дата 29.10.2012, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 313
Регистрация: 13.3.2012
Где: Ростов-на-Дону

Репутация: 2
Всего: 2



Вряд ли тут дело в c++, а права администратора у приложения должны быть, если его запустить из под администратора (правой кнопкой -> запустить от имени -> администратор).
PM MAIL   Вверх
Barabeo
Дата 29.10.2012, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 234
Регистрация: 2.10.2010

Репутация: нет
Всего: нет



Цитата(NoviceF @ 29.10.2012,  16:12)
Вряд ли тут дело в c++, а права администратора у приложения должны быть, если его запустить из под администратора (правой кнопкой -> запустить от имени -> администратор).

Точно. Забыл что в семёрке запускал.
PM MAIL   Вверх
aretha
Дата 31.10.2012, 01:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 31.10.2012

Репутация: нет
Всего: нет



странно я запускаю из под админа,но ошибка такая же. видимо я что то в коде накосячил! 
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0969 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.