[DllImport("netapi32.dll", CharSet=CharSet.Unicode, SetLastError=true)]
private static extern int NetUserAdd(
[MarshalAs(UnmanagedType.LPWStr)] string servername,
UInt32 level,
IntPtr userInfo,
out UInt32 parm_err);
Private Declare Function NetUserAdd Lib "Netapi32.dll" ( _
<MarshalAs(UnmanagedType.LPWStr)> ByVal servername As String, _
ByVal level As Integer, _
ByRef buf As USER_INFO_1, _
ByRef param_error As Integer) As Integer
Do you know one? Please contribute it!
If the method will only be used with a single user info level, then the userInfo parameter can be simplified to be ref USER_INFO_# userInfo where # is the level you intend to pass.
Please add some!
Public Shared Function AddUser(ByVal UserName As String, Optional ByVal Server As String = "") As String
Dim NewUser As New USER_INFO_1
Dim bufPtr As IntPtr
Dim Out As Integer
With NewUser
.Comments = "New user account setup by LocalUser.dll"
.Password = "P@ssword"
.HomeDir = ""
.Script_Path = ""
.Username = UserName.Trim
.Priv = 1
End With
Dim RetVal As Integer = NetUserAdd(Server, 1, NewUser, Out)
If RetVal <> 0 Then
Return New System.ComponentModel.Win32Exception(RetVal).Message
Else
Return "Success"
End If
End Function