Why Experts Exchange?

Experts Exchange always has the answer, or at the least points me in the correct direction! It is like having another employee that is extremely experienced.

Jim Murphy
Programmer at Smart IT Solutions

When asked, what has been your best career decision?

Deciding to stick with EE.

Mohamed Asif
Technical Department Head

Being involved with EE helped me to grow personally and professionally.

Carl Webster
CTP, Sr Infrastructure Consultant
Ask ANY Question

Connect with Certified Experts to gain insight and support on specific technology challenges including:

Troubleshooting
Research
Professional Opinions
Ask a Question
Did You Know?

We've partnered with two important charities to provide clean water and computer science education to those who need it most. READ MORE

troubleshooting Question

Setting the CN in AD to a strCN value instead of a specific CN

Avatar of tcmh_65483
tcmh_65483 asked on
VB Script
4 Comments1 Solution614 ViewsLast Modified:
I created an .hta app with vbscript to be used as a help desk application to create accounts in an active directory.  I've posted a large chunk of the script below, enough to hopefully help make sense out of this.  The script works correctly, but I get a nasty error that I really don't like.  I could live with this, but this application is used by some staff who would call every time they see an error box.  The error came after I realized that I needed to set the option that wouldn't require the password to be changed on first login.  So I added the lines:

Set objUser = GetObject("LDAP://CN=(strCN),OU=Public Internet Users,DC=mydomain,DC=localhost")

objUser.Put "pwdLastSet", CLng(-1)

The script error I receive is that the object isn't found on the server.  The script runs correctly and the user is created without the need to change their password.  If I set the CN to the exact name that is being created, it works without an error.  I'm sure it's right in my face and I'm making a newbie mistake, but I don't know what to set my LDAP://CN= value to in order to use the strCN input from the text boxes.  Please help!  Thanks      
<script type="text/vbscript">
Sub CreateAccount
strFinitial = TextBox0.Value
If strFinitial = "" Then
MsgBox "You're missing required fields.",64, "Alert"
Exit Sub
End If
strFirst = TextBox1.Value
If strFirst = "" Then
MsgBox "You're missing required fields",64, "Alert"
Exit Sub
End If
strLast = TextBox2.Value
If strLast = "" Then
MsgBox "You're missing required fields",64, "Alert"
Exit Sub
End If
strPassword = TextBox3.Value
If strPassword = "" Then
MsgBox "You're missing required fields",64, "Alert"
Exit Sub
End If
strExpire = TextBox4.Value
If strPassword = "" Then
MsgBox "You're missing required fields",64, "Alert"
Exit Sub
End If
strDisplay = strFirst & " " & strLast
strCN = strDisplay
strUser = LCASE (strFinitial & "" & strLast)
Const ADS_UF_ACCOUNTDISABLE = 2
Const ADS_PROPERTY_UPDATE = 2
Set objOU = GetObject("LDAP://OU=Public Internet Users,dc=mydomain,dc=localhost")
Set objUser = objOU.Create("User", "cn=" & strDisplay)
objUser.Put "sAMAccountName", LCase(strUser)
objUser.Put "userPrincipalName", strUser & "@mydomain.localhost"
objUser.Put "givenName", strFirst
objUser.Put "sn", strLast
objUser.Put "displayName", strDisplay
objUser.SetInfo
objUser.SetPassword(strPassword)
objUser.accountdisabled = False
objUser.AccountExpirationDate = (strExpire)
objUser.SetInfo
Set objUser = GetObject("LDAP://CN=(strCN),OU=Public Internet Users,DC=mydomain,DC=localhost")
objUser.Put "pwdLastSet", CLng(-1)
objUser.SetInfo
If strInitial <> "" Then
objUser.Put "initials", strInitial
End If
objUser.Put "sn", strLast
objUser.Put "displayName", strDisplay
objUser.SetPassword "Passw0rd"
objUser.Put "pwdLastSet", 0
intUAC = objUser.Get("userAccountControl")
If intUAC And ADS_UF_ACCOUNTDISABLE Then
objUser.Put"userAccountControl", intUAC Xor ADS_UF_ACCOUNTDISABLE
End If
objUser.SetInfo
End Sub
ASKER CERTIFIED SOLUTION
Avatar of usachrisk1983
usachrisk1983Flag of United States of America image

Our community of experts have been thoroughly vetted for their expertise and industry experience.

Commented:
This problem has been solved!
Unlock 1 Answer and 4 Comments.
See Answers