Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Создание нового пользователя NetUserAdd

Delphi , ОС и Железо , Windows

Code:

unit Unit1;
 
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.
Взято из http://forum.sources.ru

Автор: Rouse_

Привет! Я переведу текст на русский язык.

Код Delphi использует библиотеку NetApi32 для добавления нового пользователя в домен Active Directory с помощью функции NetUserAdd.

В коде есть следующая структура: 1. Вначале объявляются различные типы и переменные, включая рекорд-структуру _USER_INFO_2, которая представляет информацию о пользователе. 2. Определена класс TForm1, который содержит кнопку (Button1) и вызывает процедуру Button1Click при ее клике. 3. В процедуре Button1Click создается объект TUserInfo2 и инициализируется с некоторыми значениями по умолчанию: * usri2_ name: установлено на 'TestUser' * usri2_password: установлено на '123' * usri2_priv: установлено на USER_ PRIV_USER, что означает, что пользователь будет обычным пользователем * usri2_flags: установлено на битовый OR UF_SCRIPT и UF_DONT_EXPIRE_PASSWORD, что включает журналирование скриптов и предотвращает истечение пароля 4. Затем код вызывает функцию NetUserAdd, передавая в нее: * ServerName: установлено на nil, что означает, что функция будет использовать дефолтный сервер (локальную машину) * Level: установлено на 2, что указывает, что информация о пользователе находится в формате _USER_ INFO_2 * Buff: указатель на объект TUserInfo2, созданный ранее * Parm_Err: переменная для приема кодов ошибок, возвращенных функцией 5. Если функция NetUserAdd возвращает успешно (т.е., с кодом ошибки NERR_Success), код отображает сообщение об ошибке, указывая, что пользователь был добавлен успешно.

Обратите внимание, что этот код предполагает, что библиотека NetApi32 правильно установленна и настроена на системе, а также что пользователь, запускающий программу, имеет достаточные привилегии для добавления пользователей в домен Active Directory.

Создание нового пользователя в Windows с помощью функции NetUserAdd в Delphi.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Windows ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-05-01 11:05:04/0.0036089420318604/0