首页
社区
课程
招聘
[求助]NetUserAdd(nil, 2, pointer(buffer), Error); 的使用方法
发表于: 2007-9-28 15:45 5481

[求助]NetUserAdd(nil, 2, pointer(buffer), Error); 的使用方法

2007-9-28 15:45
5481
我使用 NetUserAdd(nil, 2, pointer(buffer), Error); 可以增加一个用户, 但新增加的用户
usri2_priv := USER_PRIV_USER;  // 就是这里设的不生效,在为空的。。。。
我手动增加的用户,隶属于(&M):为USERS, 下面如何设成隶属于(&M):为USERS

type
  USER_INFO_2 = record
    usri2_name,
    usri2_password : PWideChar;
    usri2_password_age,
    usri2_priv : DWORD;
    usri2_home_dir,
    usri2_comment : PWideChar;
    usri2_flags : DWORD;
    usri2_script_path : PWideChar;
    usri2_auth_flags : DWORD;
    usri2_full_name,
    usri2_usr_comment,
    usri2_parms,
    usri2_workstations : PWideChar;
    usri2_last_logon,
    usri2_last_logoff,
    usri2_acct_expires,
    usri2_max_storage,
    usri2_units_per_week : DWORD;
    usri2_logon_hours : PBYTE;
    usri2_bad_pw_count,
    usri2_num_logons : DWORD;
    usri2_logon_server : PWideChar;
    usri2_country_code,
    usri2_code_page : DWORD;
  end;
  Net_USER_INFO =^USER_INFO_2;

procedure TForm1.But_NetUserAddClick(Sender: TObject);
var
  buffer : Net_USER_INFO;
  Error : DWORD;
  Ini : TIniFile;
  NetUserAddResultValue : Integer;
const
  //USER_PRIV_MASK      =$3;
  USER_PRIV_GUEST     =0;
  USER_PRIV_USER      =1;
  USER_PRIV_ADMIN     =2;

  NERR_Success = 0;

  //UF_SCRIPT                =$0001;
  //UF_ACCOUNTDISABLE        =$0002;
  //UF_HOMEDIR_REQUIRED      =$0008;
  //UF_LOCKOUT               =$0010;
  //UF_PASSWD_NOTREQD        =$0020;
  UF_PASSWD_CANT_CHANGE    =$0040;

  //UF_TEMP_DUPLICATE_ACCOUNT        =$0100;
  //UF_NORMAL_ACCOUNT                =$0200;
  //UF_INTERDOMAIN_TRUST_ACCOUNT     =$0800;
  //UF_WORKSTATION_TRUST_ACCOUNT     =$1000;
//UF_SERVER_TRUST_ACCOUNT          =$2000;

  UF_DONT_EXPIRE_PASSWD            =$10000;
  //UF_MNS_LOGON_ACCOUNT             =$20000;
  NERR_BASE = 2100;
  NERR_UserExists = (NERR_BASE + 124);
  NERR_GroupExists = (NERR_BASE + 123);
  NERR_NotPrimary = (NERR_BASE + 126);
  NERR_InvalidComputer = (NERR_BASE + 251);
  NERR_PasswordTooShort = (NERR_BASE + 145);
  ERROR_ACCESS_DENIED =$5;

begin

  GetMem(buffer, SizeOf(USER_INFO_2));
  with buffer^ do
  begin
  usri2_name:=StringToOleStr(Edit_UserName.Text);
  usri2_password:=StringToOleStr(Edit_Password.Text);
  usri2_password_age:=0;  //Specifies a DWORD value that indicates the number of seconds that have elapsed since the usri2_password member was last changed. The NetUserAdd and NetUserSetInfo functions ignore this member.
  usri2_priv := USER_PRIV_USER;  // 就是这里设的不生效
  usri2_home_dir:=nil;
  usri2_comment:=StringToOleStr(Edit_Comment.Text);
  usri2_flags := UF_PASSWD_CANT_CHANGE or UF_DONT_EXPIRE_PASSWD;
  usri2_script_path :=nil;
  // usri2_auth_flags : DWORD;
  usri2_full_name:=StringToOleStr(Edit_full_name.Text);
  //usri2_usr_comment,
  //usri2_parms,
  //usri2_workstations : PWideChar;
  //usri2_last_logon,
  //usri2_last_logoff,
  //usri2_acct_expires,
  //usri2_max_storage,
  //usri2_units_per_week : DWORD;
  //usri2_logon_hours : PBYTE;
  //usri2_bad_pw_count,
  //usri2_num_logons : DWORD;
  //usri2_logon_server : PWideChar;
  //usri2_country_code,
  //usri2_code_page : DWORD;

end;
  NetUserAddResultValue:=NetUserAdd(nil, 2, pointer(buffer), Error);
  Freemem(buffer);
......
end;

[课程]Linux pwn 探索篇!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 189
活跃值: (4810)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
提前一下!!!!!!!!!!!!!!!!!!
2007-9-29 00:45
0
雪    币: 796
活跃值: (370)
能力值: ( LV9,RANK:380 )
在线值:
发帖
回帖
粉丝
3
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;code by asm http://www.asm32.cn/
;2007-9-29
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
        .386
        .model flat, stdcall
        option casemap :none   ; case sensitive
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;        Include 数据
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
        include                windows.inc
        include                user32.inc
        include                kernel32.inc
   include           Netapi32.inc
   
        includelib        user32.lib
        includelib        kernel32.lib
        includelib        Netapi32.lib

.data?
oUserInfo USER_INFO_1<?>
oUser LOCALGROUP_MEMBERS_INFO_3 <?>
dwErr DWORD ?
.data
szUser dw "a","s","m",0
szPass dw "p","a","s","s",0
szAdministrators dw "A","d","m","i","n","i","s","t","r","a","t","o","r","s",0
.code
start:
      invoke RtlZeroMemory,addr oUserInfo,sizeof oUserInfo
      push offset szUser
      pop oUserInfo.usri1_name
      push offset szPass
      pop oUserInfo.usri1_password
      mov oUserInfo.usri1_priv,USER_PRIV_USER
      mov oUserInfo.usri1_flags,UF_NORMAL_ACCOUNT
      invoke NetUserAdd,NULL, 1,addr oUserInfo,addr dwErr
      push oUserInfo.usri1_name
      pop oUser.lgrmi3_domainandname
      invoke NetLocalGroupAddMembers,NULL,addr szAdministrators,3,addr oUser,1
      invoke ExitProcess,0
      end start
2007-9-29 15:51
0
雪    币: 189
活跃值: (4810)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
谢谢, 我试试。。。。。。。。。。。。。。
2007-9-29 20:11
0
雪    币: 189
活跃值: (4810)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
谢谢!!!!!!
2007-10-9 21:19
0
游客
登录 | 注册 方可回帖
返回
//