Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Добавлeние учетных записей [D6, WinXP]


som ©   (2006-01-20 15:11:00) 

Как программно добавить новую учётную запись с правами администратора ?


kaZaNoVa   (2006-02-06 11:28:00) [1]

procedure TForm2.AddUserClick(Sender: TObject);
var buf: Pointer;
    UserInfo: TAddUserInfo;
    error: NET_API_STATUS;
    parm_err: DWORD;
    HostName,User_Name,Passw: WideString;
begin
  HostName:=WideString('\\'+Trim(Form1.CompName.Text));
  User_Name:=WideString(Trim(UserName.Text));
  Passw:=WideString(Trim(Password.Text));
  UserInfo.usri1_name:=PWideChar(User_Name);
  UserInfo.usri1_password:=PWideChar(Passw);
  UserInfo.usri1_password_age:=0;
  UserInfo.usri1_priv:=USER_PRIV_USER;
  UserInfo.usri1_home_dir:='';
  UserInfo.usri1_comment:=PWideChar(WideString('Создан программой NetAdmin'));
  UserInfo.usri1_flags:=UF_SCRIPT or
                        UF_DONT_EXPIRE_PASSWD or
                        UF_NORMAL_ACCOUNT or
                        UF_PASSWD_CANT_CHANGE;
  UserInfo.usri1_script_path:='';
  buf:=@UserInfo;
  error:=NetUserAdd(PWideChar(HostName),1,buf,parm_err);
  case error of
    ERROR_ACCESS_DENIED: Application.MessageBox('Пользователю недостаточно прав для выполнения функции!',
                         'Ошибка',MB_OK+MB_ICONSTOP);
    NERR_InvalidComputer: Application.MessageBox('Неверное имя компьютера!',
                         'Ошибка',MB_OK+MB_ICONSTOP);
    NERR_NotPrimary: Application.MessageBox('Операция разрешена только для главного контроллера домена!',
                         'Ошибка',MB_OK+MB_ICONSTOP);
    NERR_GroupExists: Application.MessageBox('Группа пользователей уже существует!',
                         'Ошибка',MB_OK+MB_ICONSTOP);
    NERR_UserExists: Application.MessageBox('Пользователь уже существует!',
                         'Ошибка',MB_OK+MB_ICONSTOP);
    NERR_PasswordTooShort: Application.MessageBox('Слишком короткий пароль!',
                         'Ошибка',MB_OK+MB_ICONSTOP);
  else
    Users.Items.Add(Trim(UserName.Text));
  end;
end;


ITC   (2006-02-06 11:09:00) [2]

Можно пример?


BiN   (2006-01-20 15:13:00) [3]

NetUserAdd
NetLocalGroupAddMember


Наверх

Титульная страница Поиск, карта сайта Написать письмо