Вот пример добавления юзверя:
| Код | 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'а ? А может вообще не эта функция ? 
Для работы надо подключить в 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;
| |