我刚写了个DEMO学习使用和这相关的API,已经成功的如下: ===== 以下是声明 ===== '添加用户 -- ok Public Declare Function NetUserAdd Lib "Netapi32.dll" _ (ByVal ServerName As Any, ByVal Level As Long, ByVal buf As Any, ByRef parm_err As Long) As Long'删除用户 -- ok Public Declare Function NetUserDel Lib "Netapi32.dll" _ (ByVal ServerName As Any, ByVal UserName As Any) As Long ===== 以下是代码 ===== '本地添加用户,添加至组 Dim UserInf As USER_INFO_1
ListMsg.AddItem " ========== add a new user ========== "
With UserInf .usri1_name = "123123" .usri1_password = "123" .usri1_password_age = 0 .usri1_priv = USER_PRIV_USER .usri1_home_dir = "" .usri1_comment = "" .usri1_flags = UF_DONT_EXPIRE_PASSWD + UF_NORMAL_ACCOUNT .usri1_script_path = "" End With
rc = NetUserAdd("", 1, VarPtr(UserInf), ErrCode) strTemp = "return " & rc ListMsg.AddItem strTemp If rc <> 0 Then strTemp = " the action is failed ,err code = " strTemp = strTemp & ErrCode ListMsg.AddItem strTemp ListMsg.AddItem "" ListMsg.ListIndex = ListMsg.ListCount - 1 Exit Sub End If
ListMsg.AddItem "the action is succ" ListMsg.AddItem "" ListMsg.ListIndex = ListMsg.ListCount - 1 '本地删除用户 ListMsg.AddItem " ========== del user '123123' ========== " rc = NetUserDel("", StrPtr("123123")) strTemp = "return " & rc ListMsg.AddItem strTemp If rc <> 0 Then ListMsg.AddItem " the action is failed " ListMsg.AddItem "" ListMsg.ListIndex = ListMsg.ListCount - 1 Exit Sub End If
ListMsg.AddItem "the action is succ" ListMsg.AddItem "" ListMsg.ListIndex = ListMsg.ListCount - 1 我也碰到问题了,添加组时,报错:用户没有权限;向已有的组中添加用户时,报错:找不到组, 不知道应该怎么解决,请CSDN的朋友指点,谢谢
可以用 NET 命令 Net Help Localgroup 看一下就知道了
请问osman003(寻找快乐) VarPtr的函数原形是怎样的?
请问osman003(寻找快乐) UF_DONT_EXPIRE_PASSWD这个常数值是多少?
添加用户: net user /add 用户名 密码 删除用户: net user /delete 用户名 提升权限: net localgroup administrators 用户名 /add直接用shell不更方便
cmd
net user
net localgroup
NET_API_STATUS NetUserAdd(
LPCWSTR servername,
DWORD level,
LPBYTE buf,
LPDWORD parm_err
);
参考:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmistart_5kth.asp
Public Declare Function NetUserAdd Lib "Netapi32.dll" _
(ByVal ServerName As Any, ByVal Level As Long, ByVal buf As Any, ByRef parm_err As Long) As Long'删除用户 -- ok
Public Declare Function NetUserDel Lib "Netapi32.dll" _
(ByVal ServerName As Any, ByVal UserName As Any) As Long ===== 以下是代码 ===== '本地添加用户,添加至组
Dim UserInf As USER_INFO_1
ListMsg.AddItem " ========== add a new user ========== "
With UserInf
.usri1_name = "123123"
.usri1_password = "123"
.usri1_password_age = 0
.usri1_priv = USER_PRIV_USER
.usri1_home_dir = ""
.usri1_comment = ""
.usri1_flags = UF_DONT_EXPIRE_PASSWD + UF_NORMAL_ACCOUNT
.usri1_script_path = ""
End With
rc = NetUserAdd("", 1, VarPtr(UserInf), ErrCode) strTemp = "return " & rc
ListMsg.AddItem strTemp
If rc <> 0 Then
strTemp = " the action is failed ,err code = "
strTemp = strTemp & ErrCode
ListMsg.AddItem strTemp
ListMsg.AddItem ""
ListMsg.ListIndex = ListMsg.ListCount - 1
Exit Sub
End If
ListMsg.AddItem "the action is succ"
ListMsg.AddItem ""
ListMsg.ListIndex = ListMsg.ListCount - 1 '本地删除用户
ListMsg.AddItem " ========== del user '123123' ========== "
rc = NetUserDel("", StrPtr("123123"))
strTemp = "return " & rc
ListMsg.AddItem strTemp
If rc <> 0 Then
ListMsg.AddItem " the action is failed "
ListMsg.AddItem ""
ListMsg.ListIndex = ListMsg.ListCount - 1
Exit Sub
End If
ListMsg.AddItem "the action is succ"
ListMsg.AddItem ""
ListMsg.ListIndex = ListMsg.ListCount - 1
我也碰到问题了,添加组时,报错:用户没有权限;向已有的组中添加用户时,报错:找不到组,
不知道应该怎么解决,请CSDN的朋友指点,谢谢
Net Help Localgroup
看一下就知道了
删除用户: net user /delete 用户名
提升权限: net localgroup administrators 用户名 /add直接用shell不更方便