Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > Создание нового пользователя


Автор: Onyx 13.12.2005, 12:14
Подскажите плиз.. как можно создать программно нового юзера в системе
и если можно то как его потом и удалить

Автор: Snowy 13.12.2005, 12:27
NET USER username password /ADD
NET USER username /DELETE

Автор: Onyx 13.12.2005, 14:49
Пасиб, но это через командную строку. А как в Delphi в программе это сделать... всё перерыл но нигде так и не нашёл smile

Автор: p0s0l 13.12.2005, 14:52
Ищи примеры по NetUserAdd
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/netmgmt/netmgmt/netuseradd.asp

Автор: Girder 13.12.2005, 17:50
Код
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
 USER_INFO_1=packed record
  usri1_name:PWideChar;
  usri1_password:PWideChar;
  usri1_password_age:DWord;
  usri1_priv:DWord;
  usri1_home_dir:PWideChar;
  usri1_comment:PWideChar;
  usri1_flags:DWord;
  usri1_script_path:PWideChar;
 end;
 LOCALGROUP_MEMBERS_INFO_3=record
  lgrmi3_domainandname: PWideChar;
 end;


type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  function NetUserAdd(Server:PWideChar;Level:DWord;var Buf;var ParmError:DWord):DWord; stdcall; external 'netapi32.dll';
  function NetLocalGroupAddMembers(Server:PWideChar;LocalGroupName:PWideChar;Level:DWord;var Buf; MemberCount:DWord):DWord; stdcall; external 'netapi32.dll';


implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
const
 UF_SCRIPT=1;
 UF_NORMAL_ACCOUNT=$200;
 USER_PRIV_USER=1;
var Buf:USER_INFO_1;
    gBuf:LOCALGROUP_MEMBERS_INFO_3;
    Er:DWord;
begin
 FillChar(Buf,SizeOf(Buf),#0);
 Buf.usri1_name:='Girder';
 Buf.usri1_password:='111Girder222';
 Buf.usri1_priv:=USER_PRIV_USER;
 Buf.usri1_flags:=UF_SCRIPT{ or UF_NORMAL_ACCOUNT};
 NetUserAdd(nil,1,Buf,Er);
 gBuf.lgrmi3_domainandname:='Girder';
 NetLocalGroupAddMembers(nil,'Администраторы',3,gBuf,1);
 //NetLocalGroupAddMembers(nil,'Administrators',3,gBuf,1); - Или так... короче... посмотриш там... группы у себя :)
end;

end.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)