создать пользователя Windows, используя Delphi - PullRequest
4 голосов
/ 15 марта 2010

Мне нужно создать нового пользователя Windows в качестве администратора, используя Delphi

Спасибо

Ответы [ 2 ]

12 голосов
/ 15 марта 2010

вы можете использовать функции NetUserAdd и NetUserSetGroups , объявленные в заголовках JEDI .

см. Этот простой пример.

program ProjectAddNewUser;

{$APPTYPE CONSOLE}

uses
  JclWin32,//Jedi Library
  Windows,
  SysUtils;


function CreateWinUser(const wServer, wUsername, wPassword, wGroup:WideString): Boolean;
var
  Buf       : USER_INFO_2;//Buf for the new user info
  Err       : NET_API_STATUS;
  ParmErr   : DWORD;
  GrpUsrInfo: USER_INFO_0;//Buf for the group
  wDummyStr : WideString;
begin
  wDummyStr:='';
  FillChar (Buf, SizeOf(USER_INFO_2), 0);
  with Buf do
  begin
    usri2_name      := PWideChar(wUsername);
    usri2_full_name := PWideChar(wUsername);//You can add a more descriptive name here
    usri2_password  := PWideChar(wPassword);
    usri2_comment   := PWideChar(wDummyStr);
    usri2_priv      := USER_PRIV_USER;
    usri2_flags     := UF_SCRIPT OR UF_DONT_EXPIRE_PASSWD;
    usri2_script_path := PWideChar(wDummyStr);
    usri2_home_dir    := PWideChar(wDummyStr);
    usri2_acct_expires:= TIMEQ_FOREVER;
  end;

  GrpUsrInfo.usri0_name:=PWideChar(wGroup);

  Err := NetUserAdd(PWideChar(wServer), 1, @Buf, @ParmErr);
  Result := (Err = NERR_SUCCESS);

  if Result then //NOw you must set the group for the new user
  begin
  Err := NetUserSetGroups(PWideChar(wServer),PWideChar(wGroup),0,@GrpUsrInfo,1);
  Result := (Err = NERR_SUCCESS);
  end;
end;

begin

  if CreateWinUser('localhost', 'MyNewUser','ThePassword','MyWindowsGroup') then
   Writeln('Ok')
  else
   Writeln('False');

  Readln;
end.
1 голос
/ 15 марта 2010

Я думаю, что вызов API, который вам нужен - NetUserAdd .

Сначала проверьте, предоставляет ли Delphi оболочку для этого вызова. Если нет, вам придется написать свой собственный. Если вы не знаете, как выполнять вызовы API Windows из Delphi, у вас есть кое-какие дополнительные исследования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...