home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 April / Chip_2002-04_cd1.bin / zkuste / delphi / kolekce / d56 / NT.ZIP / NTAddUser.pas < prev    next >
Pascal/Delphi Source File  |  2002-01-18  |  3KB  |  80 lines

  1. unit NTAddUser;
  2.  
  3. interface
  4.  
  5. uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, NTTools;
  6.  
  7. type
  8.   TNTAddUser = class(TComponent)
  9.   private
  10.     { Private declarations }
  11.     FServer:String;
  12.     FUserName:String;
  13.     FPassword:String;
  14.     FPasswordAge:DWORD;
  15.     FPrivileges:DWORD;
  16.     FHomeDir:String;
  17.     FComment:String;
  18.     FScript:String;
  19.     FFlags:DWORD;
  20.   protected
  21.     { Protected declarations }
  22.   public
  23.     { Public declarations }
  24.   published
  25.     { Published declarations }
  26.     property Server:String read FServer write FServer;
  27.     property UserName:String read FUserName write FUserName;
  28.     property Password:String read FPassword write FPassword;
  29.     property Privileges:DWORD read FPrivileges write FPrivileges default 1;
  30.     property Flags:DWORD read FFlags write FFlags default 1;
  31.     property HomeDir:String read FHomeDir write FHomeDir;
  32.     property Comment:String read FComment write FComment;
  33.     property Script:String read FScript write FScript;
  34.     function Execute:LongInt;
  35.   end;
  36.  
  37. Type USER_INFO_1=record
  38.     usri1_name:LPWSTR;    usri1_password:LPWSTR;    usri1_password_age:DWORD;    usri1_priv:DWORD;    usri1_home_dir:LPWSTR;    usri1_comment:LPWSTR;    usri1_flags:DWORD;        usri1_script_path:LPWSTR;End;
  39.  
  40. function NetUserAdd(Server:PWideChar;Level:DWORD;Buffer:PChar;ParmError:PChar):LongInt; stdcall; external 'netapi32.dll';
  41.  
  42. procedure Register;
  43.  
  44. implementation
  45.  
  46. function TNTAddUser.Execute:LongInt;
  47. var tUserName:Array[0..255] Of WideChar;
  48.     tPassword:Array[0..255] Of WideChar;
  49.     tHomeDir:Array[0..255] Of WideChar;
  50.     tComment:Array[0..255] Of WideChar;
  51.     tScript:Array[0..255] Of WideChar;
  52.     tServer:Array[0..255] Of WideChar;
  53.     MyInfo:USER_INFO_1;
  54.     Where:DWORD;
  55. begin
  56.      StringToWideChar(FUserName,@tUserName,255);
  57.      StringToWideChar(FPassword,@tPassword,255);
  58.      StringToWideChar(FHomeDir,@tHomeDir,255);
  59.      StringToWideChar(FComment,@tComment,255);
  60.      StringToWideChar(FScript,@tScript,255);
  61.      StringToWideChar(FServer,@tServer,255);
  62.      MyInfo.usri1_name:=@tUserName;
  63.      MyInfo.usri1_password:=@tPassword;
  64.      MyInfo.usri1_password_age:=FPasswordAge;
  65.      MyInfo.usri1_priv:=FPrivileges;
  66.      MyInfo.usri1_home_dir:=@tHomeDir;
  67.      MyInfo.usri1_comment:=@tComment;
  68.      MyInfo.usri1_flags:=(FFlags or UF_SCRIPT); // allways include UF_SCRIPT !!!
  69.      MyInfo.usri1_script_path:=@tScript;
  70.      NetUserAdd(@tServer,1,@MyInfo,@Where);
  71.      Result:=Where;
  72. end;
  73.  
  74. procedure Register;
  75. begin
  76.   RegisterComponents('NT Tools - User Management', [TNTAddUser]);
  77. end;
  78.  
  79. end.
  80.