Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Прописать на домен нового пользователя программно 
:(
    Опции темы
Гость_Leo
Дата 6.4.2004, 08:16 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Каким образом это осуществить в Delphi ?
  Вверх
p0s0l
Дата 6.4.2004, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

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



NetUserAdd ?



--------------------
С уважением, г-н Посол.
PM   Вверх
Гость_Leo
Дата 11.4.2004, 08:53 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











А поподробней, пожалуйста ?
У меня есть описания этой функции на C++, но у меня не получается описать виды данных, которые используются как аргументы этой функции, на Delphi.
Если кто знает, напишите, буду благодарен smile.gif
  Вверх
p0s0l
Дата 11.4.2004, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

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



Вот пример добавления юзверя:
Код
procedure AddUser(const ServerName, UserName : String);
var
 UserInfo : USER_INFO_1;
 wcUserName, wcServerName, wcPass : LPWSTR;

begin
 GetMem(wcServerName, 1024);
 GetMem(wcUserName, 1024);
 StringToWideChar(ServerName, wcServerName, 1024);
 StringToWideChar(UserName, wcUserName, 1024);

 ZeroMemory(@UserInfo, SizeOf(UserInfo));
 UserInfo.usri1_name := wcUserName;
 UserInfo.usri1_password := 'parol'; // можно nil
 UserInfo.usri1_priv := USER_PRIV_USER;
 UserInfo.usri1_comment := 'Test user';
 UserInfo.usri1_flags := UF_SCRIPT or UF_DONT_EXPIRE_PASSWD or UF_NORMAL_ACCOUNT;

 NetUserAdd(nil, 1, @UserInfo, nil);

 FreeMem(wcServerName);
 FreeMem(wcUserName);
end;

Пример вызова: AddUser('', 'user1') - добавится юзер "user1" на локальной машине. Вот насчет доменов - не знаю, поэкспериментируй сам, может в имени сервера надо задать имя domain controller'а ? А может вообще не эта функция ? smile.gif

Для работы надо подключить в uses модуль JwaLM. Это LanMan модуль от Jedi. В Delphi нет нужных функций и констант. Если у тебя нет Jedi WinAPI, то вот вырезка из JwaLM (вставь перед AddUser):
Код
type
 USER_INFO_1 = record
   usri1_name: LPWSTR;
   usri1_password: LPWSTR;
   usri1_password_age: DWORD;
   usri1_priv: DWORD;
   usri1_home_dir: LPWSTR;
   usri1_comment: LPWSTR;
   usri1_flags: DWORD;
   usri1_script_path: LPWSTR;
 end;

function NetUserAdd(servername: LPCWSTR; level: DWORD; buf: Pointer;
 parm_err: PDWORD): DWORD; stdcall; external 'netapi32.dll' name 'NetUserAdd';

const
 NERR_Success = 0;

 USER_PRIV_MASK      = $3;
 USER_PRIV_GUEST     = 0;
 USER_PRIV_USER      = 1;
 USER_PRIV_ADMIN     = 2;

 UF_SCRIPT                          = $0001;
 UF_ACCOUNTDISABLE                  = $0002;
 UF_HOMEDIR_REQUIRED                = $0008;
 UF_LOCKOUT                         = $0010;
 UF_PASSWD_NOTREQD                  = $0020;
 UF_PASSWD_CANT_CHANGE              = $0040;
 UF_ENCRYPTED_TEXT_PASSWORD_ALLOWED = $0080;

// Account type bits as part of usri_flags.

 UF_TEMP_DUPLICATE_ACCOUNT       = $0100;
 UF_NORMAL_ACCOUNT               = $0200;
 UF_INTERDOMAIN_TRUST_ACCOUNT    = $0800;
 UF_WORKSTATION_TRUST_ACCOUNT    = $1000;
 UF_SERVER_TRUST_ACCOUNT         = $2000;

 UF_MACHINE_ACCOUNT_MASK = UF_INTERDOMAIN_TRUST_ACCOUNT or
   UF_WORKSTATION_TRUST_ACCOUNT or UF_SERVER_TRUST_ACCOUNT;

 UF_ACCOUNT_TYPE_MASK = UF_TEMP_DUPLICATE_ACCOUNT or UF_NORMAL_ACCOUNT or
   UF_INTERDOMAIN_TRUST_ACCOUNT or UF_WORKSTATION_TRUST_ACCOUNT or
   UF_SERVER_TRUST_ACCOUNT;

 UF_DONT_EXPIRE_PASSWD           = $10000;
 UF_MNS_LOGON_ACCOUNT            = $20000;
 UF_SMARTCARD_REQUIRED           = $40000;
 UF_TRUSTED_FOR_DELEGATION       = $80000;
 UF_NOT_DELEGATED               = $100000;
 UF_USE_DES_KEY_ONLY            = $200000;
 UF_DONT_REQUIRE_PREAUTH        = $400000;

 UF_SETTABLE_BITS = UF_SCRIPT or UF_ACCOUNTDISABLE or UF_LOCKOUT or
   UF_HOMEDIR_REQUIRED or UF_PASSWD_NOTREQD or UF_PASSWD_CANT_CHANGE or
   UF_ACCOUNT_TYPE_MASK or UF_DONT_EXPIRE_PASSWD or UF_MNS_LOGON_ACCOUNT or
   UF_ENCRYPTED_TEXT_PASSWORD_ALLOWED or UF_SMARTCARD_REQUIRED or
   UF_TRUSTED_FOR_DELEGATION or UF_NOT_DELEGATED or UF_USE_DES_KEY_ONLY or
   UF_DONT_REQUIRE_PREAUTH;



--------------------
С уважением, г-н Посол.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

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

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

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




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


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

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