Пользователи, пароли, защита информации
Code: |
unit Unit1; {©Drkb v.3}
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;
LPUSER_INFO_2 = ^USER_INFO_2; {$EXTERNALSYM LPUSER_INFO_2} PUSER_INFO_2 = ^USER_INFO_2; {$EXTERNALSYM PUSER_INFO_2} _USER_INFO_2 = record usri2_name: LPWSTR; usri2_password: LPWSTR; usri2_password_age: DWORD; usri2_priv: DWORD; usri2_home_dir: LPWSTR; usri2_comment: LPWSTR; usri2_flags: DWORD; usri2_script_path: LPWSTR; usri2_auth_flags: DWORD; usri2_full_name: LPWSTR; usri2_usr_comment: LPWSTR; usri2_parms: LPWSTR; usri2_workstations: LPWSTR; usri2_last_logon: DWORD; usri2_last_logoff: DWORD; usri2_acct_expires: DWORD; usri2_max_storage: DWORD; usri2_units_per_week: DWORD; usri2_logon_hours: PBYTE; usri2_bad_pw_count: DWORD; usri2_num_logons: DWORD; usri2_logon_server: LPWSTR; usri2_country_code: DWORD; usri2_code_page: DWORD; end; {$EXTERNALSYM _USER_INFO_2} USER_INFO_2 = _USER_INFO_2; {$EXTERNALSYM USER_INFO_2} TUserInfo2 = USER_INFO_2; PUserInfo2 = puser_info_2;
function NetUserAdd(ServerName: LPCWSTR; Level: DWORD; Buff: PByte; var Parm_Err: DWORD): DWORD; stdcall; external 'netapi32.dll';
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); const NERR_Success = 0; USER_PRIV_USER = 1; UF_SCRIPT = $0001; UF_DONT_EXPIRE_PASSWD = $10000; var UserInfo: TUserInfo2; Parm_Err: DWORD; begin ZeroMemory(@UserInfo, SizeOf(TUserInfo2)); UserInfo.usri2_name := 'TestUser'; UserInfo.usri2_password := '123'; UserInfo.usri2_priv := USER_PRIV_USER; UserInfo.usri2_flags := UF_SCRIPT or UF_DONT_EXPIRE_PASSWD; if NetUserAdd(nil, 2, @UserInfo, Parm_Err) <> NERR_Success then RaiseLastOSError else ShowMessage('Пользователь TestUser с паролем 123 успешно добавлен.'); end;
end. |
- Подробности
- Родительская категория: Windows
- Категория: Пользователи, пароли, защита информации
Страница 2 из 2