Home All Groups Group Topic Archive Search About

create user on AD server

Author
29 Jul 2010 6:13 PM
Dipesh_Sharma
Hi,
I want to create an application which on passing a user id & password will
create that user on windows 2003 AD server. I used netuseradd API to do this,
but was not able to create user on AD server & boot my system with that user.
CAn anybody please help me do this. if i am doing right what could be the
problem. i am getting unknown user type error. i found few scripts but they
need to be run on server itself not on remote system in network.

Thanks

Author
29 Jul 2010 7:01 PM
Paul Clement
On Thu, 29 Jul 2010 11:13:25 -0700, Dipesh_Sharma <DipeshSha***@discussions.microsoft.com> wrote:

¤ Hi,
¤ I want to create an application which on passing a user id & password will
¤ create that user on windows 2003 AD server. I used netuseradd API to do this,
¤ but was not able to create user on AD server & boot my system with that user.
¤ CAn anybody please help me do this. if i am doing right what could be the
¤ problem. i am getting unknown user type error. i found few scripts but they
¤ need to be run on server itself not on remote system in network.
¤
¤ Thanks

A little more detail would help. Are you creating a domain user or a system local user? Does the
error occur when you attempt to log on to the server interactively? What is the exact error message?


Paul
~~~~
Microsoft MVP (Visual Basic)
Author
1 Aug 2010 6:24 PM
Dipesh_Sharma
Hi Paul,
Thnx for replying. I am creating a domain user on msd.com, not a local user
on client machine, through a client machine with following code. Sometime the
error was related to path not found, and sometime logon failure. Please
review the code and correct it so that it can create the user on windows
server.
I am using following code:::::
xi_strServerName = "virtual-server"  'netbios name, i also used domain name
msd.com here
xi_strUserName = "newuser"
xi_strUserFullName = "test newuser"
xi_strPassword = "user@123"
xi_strUserComment = "test user"
p_lngFlags = UF_NORMAL_ACCOUNT Or UF_SCRIPT Or UF_DONT_EXPIRE_PASSWD
WriteLog "staging in AD user..."
' ------------------------------------------
    ' Create byte arrays to avoid Unicode hassles
    ' ------------------------------------------
    p_abytServerName = xi_strServerName & vbNullChar
    p_abytUserName = xi_strUserName & vbNullChar
    p_abytUserFullName = xi_strUserFullName & vbNullChar
    p_abytPassword = xi_strPassword & vbNullChar
    p_abytUserComment = xi_strUserComment & vbNullChar
    ' ------------------------------------------
    ' Get pointers to the byte arrays
    ' ------------------------------------------
    p_lngPtrUserName = VarPtr(p_abytUserName(0))
    p_lngPtrUserFullName = VarPtr(p_abytUserFullName(0))
    p_lngPtrPassword = VarPtr(p_abytPassword(0))
    p_lngPtrUserComment = VarPtr(p_abytUserComment(0))
With p_typUserInfo3
      .usri3_acct_expires = TIMEQ_FOREVER ' Never expires
      .usri3_comment = p_lngPtrUserComment ' Comment
      .usri3_flags = p_lngFlags ' There are a number of variations
      .usri3_full_name = p_lngPtrUserFullName ' User's full name
      .usri3_max_storage = USER_MAXSTORAGE_UNLIMITED ' Can use any amount of
disk space
      .usri3_name = p_lngPtrUserName ' Name of user account
      .usri3_password = p_lngPtrPassword ' Password for user account
      .usri3_primary_group_id = DOMAIN_GROUP_RID_USERS ' You MUST use this
constant for NetUserAdd
      .usri3_script_path = 0&       ' Path of user's logon script
      .usri3_auth_flags = 0&        ' Ignored by NetUserAdd
      .usri3_bad_pw_count = 0&      ' Ignored by NetUserAdd
      .usri3_code_page = 0&         ' Code page for user's language
      .usri3_country_code = 0&      ' Country code for user's language
      .usri3_home_dir = 0&          ' Can specify path of home directory of
this
      'user
      .usri3_home_dir_drive = 0&    ' Drive letter assign to user's
      'profile
      .usri3_last_logoff = 0&       ' Not needed when adding a user
      .usri3_last_logon = 0&        ' Ignored by NetUserAdd
      .usri3_logon_hours = 0&       ' Null means no restrictions
      .usri3_logon_server = 0&      ' Null means logon to domain server
      .usri3_num_logons = 0&        ' Ignored by NetUserAdd
      .usri3_parms = 0&             ' Used by specific applications
      .usri3_password_age = 0&      ' Ignored by NetUserAdd
      .usri3_password_expired = 0&  ' None-zero means user must change
password at next logon
      .usri3_priv = 0&              ' Ignored by NetUserAdd
      .usri3_profile = 0&           ' Path to a user's profile
      .usri3_units_per_week = 0&    ' Ignored by NetUserAdd
      .usri3_user_id = 0&           ' Ignored by NetUserAdd
      .usri3_usr_comment = 0&       ' User comment
      .usri3_workstations = 0&      ' Workstations a user can log onto (null
= all stations)
    End With
    WriteLog "creating AD user from NetUserAdd..."
    Dim objComputer
    Dim strComputer As String

    p_lngRtn = NetUserAdd(p_abytServerName(0), _
    3, p_typUserInfo3, p_lngParamErr)

'code ends

Show quoteHide quote
"Paul Clement" wrote:

> On Thu, 29 Jul 2010 11:13:25 -0700, Dipesh_Sharma <DipeshSha***@discussions.microsoft.com> wrote:
>
> ¤ Hi,
> ¤ I want to create an application which on passing a user id & password will
> ¤ create that user on windows 2003 AD server. I used netuseradd API to do this,
> ¤ but was not able to create user on AD server & boot my system with that user.
> ¤ CAn anybody please help me do this. if i am doing right what could be the
> ¤ problem. i am getting unknown user type error. i found few scripts but they
> ¤ need to be run on server itself not on remote system in network.
> ¤
> ¤ Thanks
>
> A little more detail would help. Are you creating a domain user or a system local user? Does the
> error occur when you attempt to log on to the server interactively? What is the exact error message?
>
>
> Paul
> ~~~~
> Microsoft MVP (Visual Basic)
> .
>
Author
2 Aug 2010 4:38 PM
Paul Clement
On Sun, 1 Aug 2010 11:24:04 -0700, Dipesh_Sharma <DipeshSha***@discussions.microsoft.com> wrote:


I prefer using ADSI. It's much easier than using API function calls:

http://www.15seconds.com/issue/011005.htm


Paul
~~~~
Microsoft MVP (Visual Basic)
Author
2 Aug 2010 5:56 PM
Dipesh_Sharma
Hi Paul,
I have also gone through this link. Can you please confirm, whether i can
use this code as it is, or i need to add anything else also in my code? like
any other library etc?
This site has following code to create user:
#Sub AddUser(strUser,strDomain,strFullname,strPassword,strDesc)
#Dim Computer
#Dim User
#Set Computer = Getobject("WinNT://" & strDomain)
#Set User = computer.create("User",strUser)
Can i run this code from my client machine, instead of server itself? and
what do i need to pass to strDomain? my domain name is "msd.com" so should i
pass this complete string or server's netbios name?


Show quoteHide quote
"Paul Clement" wrote:

> On Sun, 1 Aug 2010 11:24:04 -0700, Dipesh_Sharma <DipeshSha***@discussions.microsoft.com> wrote:
>
>
> I prefer using ADSI. It's much easier than using API function calls:
>
> http://www.15seconds.com/issue/011005.htm
>
>
> Paul
> ~~~~
> Microsoft MVP (Visual Basic)
> .
>
Author
2 Aug 2010 7:46 PM
Paul Clement
On Mon, 2 Aug 2010 10:56:06 -0700, Dipesh_Sharma <DipeshSha***@discussions.microsoft.com> wrote:

¤ Hi Paul,
¤ I have also gone through this link. Can you please confirm, whether i can
¤ use this code as it is, or i need to add anything else also in my code? like
¤ any other library etc?
¤ This site has following code to create user:
¤ #Sub AddUser(strUser,strDomain,strFullname,strPassword,strDesc)
¤ #Dim Computer
¤ #Dim User
¤ #Set Computer = Getobject("WinNT://" & strDomain)
¤ #Set User = computer.create("User",strUser)
¤ Can i run this code from my client machine, instead of server itself? and
¤ what do i need to pass to strDomain? my domain name is "msd.com" so should i
¤ pass this complete string or server's netbios name?

If your client machine is in the Active Directory domain that you want to add the users to then it
shouldn't be a problem. It doesn't look like there is anything else you would need to do from what I
can see in the code. It's just a matter of being in the same domain and having sufficient
permissions. All of library references are late bound.

The following code will get you the short domain name:

Set objSystemInfo = CreateObject("ADSystemInfo")
strDomain = objSystemInfo.DomainShortName


Paul
~~~~
Microsoft MVP (Visual Basic)
Author
6 Aug 2010 11:30 AM
Dipesh_Sharma
Hi Paul,
Thanks for your kind support, i am now able to create user on AD server.
I followed that site only and was able to easily achieve my requirement.

Thanks again :)

Show quoteHide quote
"Paul Clement" wrote:

> On Mon, 2 Aug 2010 10:56:06 -0700, Dipesh_Sharma <DipeshSha***@discussions.microsoft.com> wrote:
>
> ¤ Hi Paul,
> ¤ I have also gone through this link. Can you please confirm, whether i can
> ¤ use this code as it is, or i need to add anything else also in my code? like
> ¤ any other library etc?
> ¤ This site has following code to create user:
> ¤ #Sub AddUser(strUser,strDomain,strFullname,strPassword,strDesc)
> ¤ #Dim Computer
> ¤ #Dim User
> ¤ #Set Computer = Getobject("WinNT://" & strDomain)
> ¤ #Set User = computer.create("User",strUser)
> ¤ Can i run this code from my client machine, instead of server itself? and
> ¤ what do i need to pass to strDomain? my domain name is "msd.com" so should i
> ¤ pass this complete string or server's netbios name?
>
> If your client machine is in the Active Directory domain that you want to add the users to then it
> shouldn't be a problem. It doesn't look like there is anything else you would need to do from what I
> can see in the code. It's just a matter of being in the same domain and having sufficient
> permissions. All of library references are late bound.
>
> The following code will get you the short domain name:
>
> Set objSystemInfo = CreateObject("ADSystemInfo")
> strDomain = objSystemInfo.DomainShortName
>
>
> Paul
> ~~~~
> Microsoft MVP (Visual Basic)
> .
>
Author
29 Jul 2010 8:04 PM
Jim Mack
Dipesh_Sharma wrote:
> Hi,
> I want to create an application which on passing a user id &
> password will create that user on windows 2003 AD server. I used
> netuseradd API to do this, but was not able to create user on AD
> server & boot my system with that user. CAn anybody please help me
> do this. if i am doing right what could be the problem. i am
> getting unknown user type error. i found few scripts but they need
> to be run on server itself not on remote system in network.

Perhaps you could post the VB6 code you're using now, and we can spot
a problem...

--
   Jim Mack
   Twisted tees at http://www.cafepress.com/2050inc
   "We sew confusion"
Author
1 Aug 2010 6:26 PM
Dipesh_Sharma
Hi Jim,
Thnx for replying. I am creating a domain user on msd.com through a client
machine with following code. Please review the code and correct it so that it
can create the user on windows server.
I am using following code:::::
xi_strServerName = "virtual-server"  'netbios name, i also used domain name
msd.com here
xi_strUserName = "newuser"
xi_strUserFullName = "test newuser"
xi_strPassword = "user@123"
xi_strUserComment = "test user"
p_lngFlags = UF_NORMAL_ACCOUNT Or UF_SCRIPT Or UF_DONT_EXPIRE_PASSWD
WriteLog "staging in AD user..."
' ------------------------------------------
    ' Create byte arrays to avoid Unicode hassles
    ' ------------------------------------------
    p_abytServerName = xi_strServerName & vbNullChar
    p_abytUserName = xi_strUserName & vbNullChar
    p_abytUserFullName = xi_strUserFullName & vbNullChar
    p_abytPassword = xi_strPassword & vbNullChar
    p_abytUserComment = xi_strUserComment & vbNullChar
    ' ------------------------------------------
    ' Get pointers to the byte arrays
    ' ------------------------------------------
    p_lngPtrUserName = VarPtr(p_abytUserName(0))
    p_lngPtrUserFullName = VarPtr(p_abytUserFullName(0))
    p_lngPtrPassword = VarPtr(p_abytPassword(0))
    p_lngPtrUserComment = VarPtr(p_abytUserComment(0))
With p_typUserInfo3
      .usri3_acct_expires = TIMEQ_FOREVER ' Never expires
      .usri3_comment = p_lngPtrUserComment ' Comment
      .usri3_flags = p_lngFlags ' There are a number of variations
      .usri3_full_name = p_lngPtrUserFullName ' User's full name
      .usri3_max_storage = USER_MAXSTORAGE_UNLIMITED ' Can use any amount of
disk space
      .usri3_name = p_lngPtrUserName ' Name of user account
      .usri3_password = p_lngPtrPassword ' Password for user account
      .usri3_primary_group_id = DOMAIN_GROUP_RID_USERS ' You MUST use this
constant for NetUserAdd
      .usri3_script_path = 0&       ' Path of user's logon script
      .usri3_auth_flags = 0&        ' Ignored by NetUserAdd
      .usri3_bad_pw_count = 0&      ' Ignored by NetUserAdd
      .usri3_code_page = 0&         ' Code page for user's language
      .usri3_country_code = 0&      ' Country code for user's language
      .usri3_home_dir = 0&          ' Can specify path of home directory of
this
      'user
      .usri3_home_dir_drive = 0&    ' Drive letter assign to user's
      'profile
      .usri3_last_logoff = 0&       ' Not needed when adding a user
      .usri3_last_logon = 0&        ' Ignored by NetUserAdd
      .usri3_logon_hours = 0&       ' Null means no restrictions
      .usri3_logon_server = 0&      ' Null means logon to domain server
      .usri3_num_logons = 0&        ' Ignored by NetUserAdd
      .usri3_parms = 0&             ' Used by specific applications
      .usri3_password_age = 0&      ' Ignored by NetUserAdd
      .usri3_password_expired = 0&  ' None-zero means user must change
password at next logon
      .usri3_priv = 0&              ' Ignored by NetUserAdd
      .usri3_profile = 0&           ' Path to a user's profile
      .usri3_units_per_week = 0&    ' Ignored by NetUserAdd
      .usri3_user_id = 0&           ' Ignored by NetUserAdd
      .usri3_usr_comment = 0&       ' User comment
      .usri3_workstations = 0&      ' Workstations a user can log onto (null
= all stations)
    End With
    WriteLog "creating AD user from NetUserAdd..."
    Dim objComputer
    Dim strComputer As String

    p_lngRtn = NetUserAdd(p_abytServerName(0), _
    3, p_typUserInfo3, p_lngParamErr)

'code ends

Show quoteHide quote
"Jim Mack" wrote:

> Dipesh_Sharma wrote:
> > Hi,
> > I want to create an application which on passing a user id &
> > password will create that user on windows 2003 AD server. I used
> > netuseradd API to do this, but was not able to create user on AD
> > server & boot my system with that user. CAn anybody please help me
> > do this. if i am doing right what could be the problem. i am
> > getting unknown user type error. i found few scripts but they need
> > to be run on server itself not on remote system in network.
>
> Perhaps you could post the VB6 code you're using now, and we can spot
> a problem...
>
> --
>    Jim Mack
>    Twisted tees at http://www.cafepress.com/2050inc
>    "We sew confusion"
>
> .
>
Author
1 Aug 2010 9:05 PM
Jim Mack
Dipesh_Sharma wrote:

We need to see your Declare for NetUserAdd -- are you using the -W
version of that API? Because from the look of it you're passing
Unicode string params in the byte arrays. Also, show us your Type
statements for the structure(s) you're passing.
--
   Jim Mack
   Twisted tees at http://www.cafepress.com/2050inc
   "We sew confusion"

Show quoteHide quote
> Hi Jim,
> Thnx for replying. I am creating a domain user on msd.com through a
> client machine with following code. Please review the code and
> correct it so that it can create the user on windows server.
> I am using following code:::::
> xi_strServerName = "virtual-server"  'netbios name, i also used
> domain name msd.com here
> xi_strUserName = "newuser"
> xi_strUserFullName = "test newuser"
> xi_strPassword = "user@123"
> xi_strUserComment = "test user"
> p_lngFlags = UF_NORMAL_ACCOUNT Or UF_SCRIPT Or UF_DONT_EXPIRE_PASSWD
> WriteLog "staging in AD user..."
> ' ------------------------------------------
>     ' Create byte arrays to avoid Unicode hassles
>     ' ------------------------------------------
>     p_abytServerName = xi_strServerName & vbNullChar
>     p_abytUserName = xi_strUserName & vbNullChar
>     p_abytUserFullName = xi_strUserFullName & vbNullChar
>     p_abytPassword = xi_strPassword & vbNullChar
>     p_abytUserComment = xi_strUserComment & vbNullChar
>     ' ------------------------------------------
>     ' Get pointers to the byte arrays
>     ' ------------------------------------------
>     p_lngPtrUserName = VarPtr(p_abytUserName(0))
>     p_lngPtrUserFullName = VarPtr(p_abytUserFullName(0))
>     p_lngPtrPassword = VarPtr(p_abytPassword(0))
>     p_lngPtrUserComment = VarPtr(p_abytUserComment(0))
> With p_typUserInfo3
>       .usri3_acct_expires = TIMEQ_FOREVER ' Never expires
>       .usri3_comment = p_lngPtrUserComment ' Comment
>       .usri3_flags = p_lngFlags ' There are a number of variations
>       .usri3_full_name = p_lngPtrUserFullName ' User's full name
>       .usri3_max_storage = USER_MAXSTORAGE_UNLIMITED ' Can use any
> amount of disk space
>       .usri3_name = p_lngPtrUserName ' Name of user account
>       .usri3_password = p_lngPtrPassword ' Password for user account
>       .usri3_primary_group_id = DOMAIN_GROUP_RID_USERS ' You MUST
> use this constant for NetUserAdd
>       .usri3_script_path = 0&       ' Path of user's logon script
>       .usri3_auth_flags = 0&        ' Ignored by NetUserAdd
>       .usri3_bad_pw_count = 0&      ' Ignored by NetUserAdd
>       .usri3_code_page = 0&         ' Code page for user's language
>       .usri3_country_code = 0&      ' Country code for user's
>       language .usri3_home_dir = 0&          ' Can specify path of
> home directory of this
>       'user
>       .usri3_home_dir_drive = 0&    ' Drive letter assign to user's
>       'profile
>       .usri3_last_logoff = 0&       ' Not needed when adding a user
>       .usri3_last_logon = 0&        ' Ignored by NetUserAdd
>       .usri3_logon_hours = 0&       ' Null means no restrictions
>       .usri3_logon_server = 0&      ' Null means logon to domain
>       server .usri3_num_logons = 0&        ' Ignored by NetUserAdd
>       .usri3_parms = 0&             ' Used by specific applications
>       .usri3_password_age = 0&      ' Ignored by NetUserAdd
>       .usri3_password_expired = 0&  ' None-zero means user must
> change password at next logon
>       .usri3_priv = 0&              ' Ignored by NetUserAdd
>       .usri3_profile = 0&           ' Path to a user's profile
>       .usri3_units_per_week = 0&    ' Ignored by NetUserAdd
>       .usri3_user_id = 0&           ' Ignored by NetUserAdd
>       .usri3_usr_comment = 0&       ' User comment
>       .usri3_workstations = 0&      ' Workstations a user can log
> onto (null = all stations)
>     End With
>     WriteLog "creating AD user from NetUserAdd..."
>     Dim objComputer
>     Dim strComputer As String
>
>     p_lngRtn = NetUserAdd(p_abytServerName(0), _
>     3, p_typUserInfo3, p_lngParamErr)
>
> 'code ends
>
> "Jim Mack" wrote:
>
>> Dipesh_Sharma wrote:
>>> Hi,
>>> I want to create an application which on passing a user id &
>>> password will create that user on windows 2003 AD server. I used
>>> netuseradd API to do this, but was not able to create user on AD
>>> server & boot my system with that user. CAn anybody please help me
>>> do this. if i am doing right what could be the problem. i am
>>> getting unknown user type error. i found few scripts but they need
>>> to be run on server itself not on remote system in network.
>>
>> Perhaps you could post the VB6 code you're using now, and we can
>> spot a problem...
>>
>> --
>>    Jim Mack
>>    Twisted tees at http://www.cafepress.com/2050inc
>>    "We sew confusion"
>>
>> .
Author
2 Aug 2010 6:00 PM
Dipesh_Sharma
Hi Jim,
i will update you on declaration of API. But can you please post your own
code that works well to create user on AD server(msd.com) from client machine.
One more thing Jim, we need to have Admin rights for managing AD, but we are
not using admin user here, so will it work fine?

Show quoteHide quote
"Jim Mack" wrote:

> Dipesh_Sharma wrote:
>
> We need to see your Declare for NetUserAdd -- are you using the -W
> version of that API? Because from the look of it you're passing
> Unicode string params in the byte arrays. Also, show us your Type
> statements for the structure(s) you're passing.
> --
>    Jim Mack
>    Twisted tees at http://www.cafepress.com/2050inc
>    "We sew confusion"
>
> > Hi Jim,
> > Thnx for replying. I am creating a domain user on msd.com through a
> > client machine with following code. Please review the code and
> > correct it so that it can create the user on windows server.
> > I am using following code:::::
> > xi_strServerName = "virtual-server"  'netbios name, i also used
> > domain name msd.com here
> > xi_strUserName = "newuser"
> > xi_strUserFullName = "test newuser"
> > xi_strPassword = "user@123"
> > xi_strUserComment = "test user"
> > p_lngFlags = UF_NORMAL_ACCOUNT Or UF_SCRIPT Or UF_DONT_EXPIRE_PASSWD
> > WriteLog "staging in AD user..."
> > ' ------------------------------------------
> >     ' Create byte arrays to avoid Unicode hassles
> >     ' ------------------------------------------
> >     p_abytServerName = xi_strServerName & vbNullChar
> >     p_abytUserName = xi_strUserName & vbNullChar
> >     p_abytUserFullName = xi_strUserFullName & vbNullChar
> >     p_abytPassword = xi_strPassword & vbNullChar
> >     p_abytUserComment = xi_strUserComment & vbNullChar
> >     ' ------------------------------------------
> >     ' Get pointers to the byte arrays
> >     ' ------------------------------------------
> >     p_lngPtrUserName = VarPtr(p_abytUserName(0))
> >     p_lngPtrUserFullName = VarPtr(p_abytUserFullName(0))
> >     p_lngPtrPassword = VarPtr(p_abytPassword(0))
> >     p_lngPtrUserComment = VarPtr(p_abytUserComment(0))
> > With p_typUserInfo3
> >       .usri3_acct_expires = TIMEQ_FOREVER ' Never expires
> >       .usri3_comment = p_lngPtrUserComment ' Comment
> >       .usri3_flags = p_lngFlags ' There are a number of variations
> >       .usri3_full_name = p_lngPtrUserFullName ' User's full name
> >       .usri3_max_storage = USER_MAXSTORAGE_UNLIMITED ' Can use any
> > amount of disk space
> >       .usri3_name = p_lngPtrUserName ' Name of user account
> >       .usri3_password = p_lngPtrPassword ' Password for user account
> >       .usri3_primary_group_id = DOMAIN_GROUP_RID_USERS ' You MUST
> > use this constant for NetUserAdd
> >       .usri3_script_path = 0&       ' Path of user's logon script
> >       .usri3_auth_flags = 0&        ' Ignored by NetUserAdd
> >       .usri3_bad_pw_count = 0&      ' Ignored by NetUserAdd
> >       .usri3_code_page = 0&         ' Code page for user's language
> >       .usri3_country_code = 0&      ' Country code for user's
> >       language .usri3_home_dir = 0&          ' Can specify path of
> > home directory of this
> >       'user
> >       .usri3_home_dir_drive = 0&    ' Drive letter assign to user's
> >       'profile
> >       .usri3_last_logoff = 0&       ' Not needed when adding a user
> >       .usri3_last_logon = 0&        ' Ignored by NetUserAdd
> >       .usri3_logon_hours = 0&       ' Null means no restrictions
> >       .usri3_logon_server = 0&      ' Null means logon to domain
> >       server .usri3_num_logons = 0&        ' Ignored by NetUserAdd
> >       .usri3_parms = 0&             ' Used by specific applications
> >       .usri3_password_age = 0&      ' Ignored by NetUserAdd
> >       .usri3_password_expired = 0&  ' None-zero means user must
> > change password at next logon
> >       .usri3_priv = 0&              ' Ignored by NetUserAdd
> >       .usri3_profile = 0&           ' Path to a user's profile
> >       .usri3_units_per_week = 0&    ' Ignored by NetUserAdd
> >       .usri3_user_id = 0&           ' Ignored by NetUserAdd
> >       .usri3_usr_comment = 0&       ' User comment
> >       .usri3_workstations = 0&      ' Workstations a user can log
> > onto (null = all stations)
> >     End With
> >     WriteLog "creating AD user from NetUserAdd..."
> >     Dim objComputer
> >     Dim strComputer As String
> >
> >     p_lngRtn = NetUserAdd(p_abytServerName(0), _
> >     3, p_typUserInfo3, p_lngParamErr)
> >
> > 'code ends
> >
> > "Jim Mack" wrote:
> >
> >> Dipesh_Sharma wrote:
> >>> Hi,
> >>> I want to create an application which on passing a user id &
> >>> password will create that user on windows 2003 AD server. I used
> >>> netuseradd API to do this, but was not able to create user on AD
> >>> server & boot my system with that user. CAn anybody please help me
> >>> do this. if i am doing right what could be the problem. i am
> >>> getting unknown user type error. i found few scripts but they need
> >>> to be run on server itself not on remote system in network.
> >>
> >> Perhaps you could post the VB6 code you're using now, and we can
> >> spot a problem...
> >>
> >> --
> >>    Jim Mack
> >>    Twisted tees at http://www.cafepress.com/2050inc
> >>    "We sew confusion"
> >>
> >> .
>
> .
>
Author
3 Aug 2010 5:20 PM
Dipesh_Sharma
Hi Jim,

Here is my declaration: Private Declare Function NetUserAdd _
Lib "netapi32.dll" (servername As Byte, _
ByVal level As Long, Buffer As USER_INFO_3, _
parm_err As Long) As Long

Show quoteHide quote
"Jim Mack" wrote:

> Dipesh_Sharma wrote:
>
> We need to see your Declare for NetUserAdd -- are you using the -W
> version of that API? Because from the look of it you're passing
> Unicode string params in the byte arrays. Also, show us your Type
> statements for the structure(s) you're passing.
> --
>    Jim Mack
>    Twisted tees at http://www.cafepress.com/2050inc
>    "We sew confusion"
>
> > Hi Jim,
> > Thnx for replying. I am creating a domain user on msd.com through a
> > client machine with following code. Please review the code and
> > correct it so that it can create the user on windows server.
> > I am using following code:::::
> > xi_strServerName = "virtual-server"  'netbios name, i also used
> > domain name msd.com here
> > xi_strUserName = "newuser"
> > xi_strUserFullName = "test newuser"
> > xi_strPassword = "user@123"
> > xi_strUserComment = "test user"
> > p_lngFlags = UF_NORMAL_ACCOUNT Or UF_SCRIPT Or UF_DONT_EXPIRE_PASSWD
> > WriteLog "staging in AD user..."
> > ' ------------------------------------------
> >     ' Create byte arrays to avoid Unicode hassles
> >     ' ------------------------------------------
> >     p_abytServerName = xi_strServerName & vbNullChar
> >     p_abytUserName = xi_strUserName & vbNullChar
> >     p_abytUserFullName = xi_strUserFullName & vbNullChar
> >     p_abytPassword = xi_strPassword & vbNullChar
> >     p_abytUserComment = xi_strUserComment & vbNullChar
> >     ' ------------------------------------------
> >     ' Get pointers to the byte arrays
> >     ' ------------------------------------------
> >     p_lngPtrUserName = VarPtr(p_abytUserName(0))
> >     p_lngPtrUserFullName = VarPtr(p_abytUserFullName(0))
> >     p_lngPtrPassword = VarPtr(p_abytPassword(0))
> >     p_lngPtrUserComment = VarPtr(p_abytUserComment(0))
> > With p_typUserInfo3
> >       .usri3_acct_expires = TIMEQ_FOREVER ' Never expires
> >       .usri3_comment = p_lngPtrUserComment ' Comment
> >       .usri3_flags = p_lngFlags ' There are a number of variations
> >       .usri3_full_name = p_lngPtrUserFullName ' User's full name
> >       .usri3_max_storage = USER_MAXSTORAGE_UNLIMITED ' Can use any
> > amount of disk space
> >       .usri3_name = p_lngPtrUserName ' Name of user account
> >       .usri3_password = p_lngPtrPassword ' Password for user account
> >       .usri3_primary_group_id = DOMAIN_GROUP_RID_USERS ' You MUST
> > use this constant for NetUserAdd
> >       .usri3_script_path = 0&       ' Path of user's logon script
> >       .usri3_auth_flags = 0&        ' Ignored by NetUserAdd
> >       .usri3_bad_pw_count = 0&      ' Ignored by NetUserAdd
> >       .usri3_code_page = 0&         ' Code page for user's language
> >       .usri3_country_code = 0&      ' Country code for user's
> >       language .usri3_home_dir = 0&          ' Can specify path of
> > home directory of this
> >       'user
> >       .usri3_home_dir_drive = 0&    ' Drive letter assign to user's
> >       'profile
> >       .usri3_last_logoff = 0&       ' Not needed when adding a user
> >       .usri3_last_logon = 0&        ' Ignored by NetUserAdd
> >       .usri3_logon_hours = 0&       ' Null means no restrictions
> >       .usri3_logon_server = 0&      ' Null means logon to domain
> >       server .usri3_num_logons = 0&        ' Ignored by NetUserAdd
> >       .usri3_parms = 0&             ' Used by specific applications
> >       .usri3_password_age = 0&      ' Ignored by NetUserAdd
> >       .usri3_password_expired = 0&  ' None-zero means user must
> > change password at next logon
> >       .usri3_priv = 0&              ' Ignored by NetUserAdd
> >       .usri3_profile = 0&           ' Path to a user's profile
> >       .usri3_units_per_week = 0&    ' Ignored by NetUserAdd
> >       .usri3_user_id = 0&           ' Ignored by NetUserAdd
> >       .usri3_usr_comment = 0&       ' User comment
> >       .usri3_workstations = 0&      ' Workstations a user can log
> > onto (null = all stations)
> >     End With
> >     WriteLog "creating AD user from NetUserAdd..."
> >     Dim objComputer
> >     Dim strComputer As String
> >
> >     p_lngRtn = NetUserAdd(p_abytServerName(0), _
> >     3, p_typUserInfo3, p_lngParamErr)
> >
> > 'code ends
> >
> > "Jim Mack" wrote:
> >
> >> Dipesh_Sharma wrote:
> >>> Hi,
> >>> I want to create an application which on passing a user id &
> >>> password will create that user on windows 2003 AD server. I used
> >>> netuseradd API to do this, but was not able to create user on AD
> >>> server & boot my system with that user. CAn anybody please help me
> >>> do this. if i am doing right what could be the problem. i am
> >>> getting unknown user type error. i found few scripts but they need
> >>> to be run on server itself not on remote system in network.
> >>
> >> Perhaps you could post the VB6 code you're using now, and we can
> >> spot a problem...
> >>
> >> --
> >>    Jim Mack
> >>    Twisted tees at http://www.cafepress.com/2050inc
> >>    "We sew confusion"
> >>
> >> .
>
> .
>
Author
6 Aug 2010 11:32 AM
Dipesh_Sharma
Hi Jim,
I was able to create user on AD server through site that Paul suggested.
Thanks for your support and guidance.

Thanks & Regards,
Dipesh

Show quoteHide quote
"Jim Mack" wrote:

> Dipesh_Sharma wrote:
>
> We need to see your Declare for NetUserAdd -- are you using the -W
> version of that API? Because from the look of it you're passing
> Unicode string params in the byte arrays. Also, show us your Type
> statements for the structure(s) you're passing.
> --
>    Jim Mack
>    Twisted tees at http://www.cafepress.com/2050inc
>    "We sew confusion"
>
> > Hi Jim,
> > Thnx for replying. I am creating a domain user on msd.com through a
> > client machine with following code. Please review the code and
> > correct it so that it can create the user on windows server.
> > I am using following code:::::
> > xi_strServerName = "virtual-server"  'netbios name, i also used
> > domain name msd.com here
> > xi_strUserName = "newuser"
> > xi_strUserFullName = "test newuser"
> > xi_strPassword = "user@123"
> > xi_strUserComment = "test user"
> > p_lngFlags = UF_NORMAL_ACCOUNT Or UF_SCRIPT Or UF_DONT_EXPIRE_PASSWD
> > WriteLog "staging in AD user..."
> > ' ------------------------------------------
> >     ' Create byte arrays to avoid Unicode hassles
> >     ' ------------------------------------------
> >     p_abytServerName = xi_strServerName & vbNullChar
> >     p_abytUserName = xi_strUserName & vbNullChar
> >     p_abytUserFullName = xi_strUserFullName & vbNullChar
> >     p_abytPassword = xi_strPassword & vbNullChar
> >     p_abytUserComment = xi_strUserComment & vbNullChar
> >     ' ------------------------------------------
> >     ' Get pointers to the byte arrays
> >     ' ------------------------------------------
> >     p_lngPtrUserName = VarPtr(p_abytUserName(0))
> >     p_lngPtrUserFullName = VarPtr(p_abytUserFullName(0))
> >     p_lngPtrPassword = VarPtr(p_abytPassword(0))
> >     p_lngPtrUserComment = VarPtr(p_abytUserComment(0))
> > With p_typUserInfo3
> >       .usri3_acct_expires = TIMEQ_FOREVER ' Never expires
> >       .usri3_comment = p_lngPtrUserComment ' Comment
> >       .usri3_flags = p_lngFlags ' There are a number of variations
> >       .usri3_full_name = p_lngPtrUserFullName ' User's full name
> >       .usri3_max_storage = USER_MAXSTORAGE_UNLIMITED ' Can use any
> > amount of disk space
> >       .usri3_name = p_lngPtrUserName ' Name of user account
> >       .usri3_password = p_lngPtrPassword ' Password for user account
> >       .usri3_primary_group_id = DOMAIN_GROUP_RID_USERS ' You MUST
> > use this constant for NetUserAdd
> >       .usri3_script_path = 0&       ' Path of user's logon script
> >       .usri3_auth_flags = 0&        ' Ignored by NetUserAdd
> >       .usri3_bad_pw_count = 0&      ' Ignored by NetUserAdd
> >       .usri3_code_page = 0&         ' Code page for user's language
> >       .usri3_country_code = 0&      ' Country code for user's
> >       language .usri3_home_dir = 0&          ' Can specify path of
> > home directory of this
> >       'user
> >       .usri3_home_dir_drive = 0&    ' Drive letter assign to user's
> >       'profile
> >       .usri3_last_logoff = 0&       ' Not needed when adding a user
> >       .usri3_last_logon = 0&        ' Ignored by NetUserAdd
> >       .usri3_logon_hours = 0&       ' Null means no restrictions
> >       .usri3_logon_server = 0&      ' Null means logon to domain
> >       server .usri3_num_logons = 0&        ' Ignored by NetUserAdd
> >       .usri3_parms = 0&             ' Used by specific applications
> >       .usri3_password_age = 0&      ' Ignored by NetUserAdd
> >       .usri3_password_expired = 0&  ' None-zero means user must
> > change password at next logon
> >       .usri3_priv = 0&              ' Ignored by NetUserAdd
> >       .usri3_profile = 0&           ' Path to a user's profile
> >       .usri3_units_per_week = 0&    ' Ignored by NetUserAdd
> >       .usri3_user_id = 0&           ' Ignored by NetUserAdd
> >       .usri3_usr_comment = 0&       ' User comment
> >       .usri3_workstations = 0&      ' Workstations a user can log
> > onto (null = all stations)
> >     End With
> >     WriteLog "creating AD user from NetUserAdd..."
> >     Dim objComputer
> >     Dim strComputer As String
> >
> >     p_lngRtn = NetUserAdd(p_abytServerName(0), _
> >     3, p_typUserInfo3, p_lngParamErr)
> >
> > 'code ends
> >
> > "Jim Mack" wrote:
> >
> >> Dipesh_Sharma wrote:
> >>> Hi,
> >>> I want to create an application which on passing a user id &
> >>> password will create that user on windows 2003 AD server. I used
> >>> netuseradd API to do this, but was not able to create user on AD
> >>> server & boot my system with that user. CAn anybody please help me
> >>> do this. if i am doing right what could be the problem. i am
> >>> getting unknown user type error. i found few scripts but they need
> >>> to be run on server itself not on remote system in network.
> >>
> >> Perhaps you could post the VB6 code you're using now, and we can
> >> spot a problem...
> >>
> >> --
> >>    Jim Mack
> >>    Twisted tees at http://www.cafepress.com/2050inc
> >>    "We sew confusion"
> >>
> >> .
>
> .
>