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.
Автор: 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