Vbscript 尝试将用户添加到Active Directory时出错
我现在不知所措;我尝试了几种不同的方法来编写这个脚本,但是不断得到一个错误,它说Vbscript 尝试将用户添加到Active Directory时出错,vbscript,active-directory,Vbscript,Active Directory,我现在不知所措;我尝试了几种不同的方法来编写这个脚本,但是不断得到一个错误,它说在character 20,2的服务器上没有这样的对象 这行是 Set objOU = GetObject("LDAP://ou=users,dc=asp,dc=rippe,dc=com") 当我将用户旁边的OU更改为CN时,会出现不同的错误 最终的结果是从HTML表单获取所有变量,然后脚本将运行以在我们的域上创建一个新用户 我甚至还没有将用户添加到组中,因为我无法通过这个路障 Dim strID,StrFName
在character 20,2的服务器上没有这样的对象
这行是
Set objOU = GetObject("LDAP://ou=users,dc=asp,dc=rippe,dc=com")
当我将用户旁边的OU
更改为CN
时,会出现不同的错误
最终的结果是从HTML表单获取所有变量,然后脚本将运行以在我们的域上创建一个新用户
我甚至还没有将用户添加到组中,因为我无法通过这个路障
Dim strID,StrFName,strLName,strFirm,strPwd,strServer,strLMS,strSql,strLMSV
strID = zademo
strFName = Demo
strLName = Tester
strFirm = Demo
strPwd = za1234
strServer = rkasp01
strLMS = y
strSql = y
strLMSV = y
strDisplay = strLName & ", " & strFName
'Create Citrix User Account
If strSql = y OR strLMSV = y Then
Set objOU = GetObject("LDAP://ou=Users,dc=asp,dc=rippe,dc=com")
Set objUser = objOU.Create("User", "cn=" & strDisplay)
objUser.Put "sAMAccountName", strID
objUser.Put "Description", strFirm
objUser.Put "givenName", strFName
objUser.Put "sn", strLName
objUser.Put "displayName", strDisplay
objUser.Put "homedirectory", "\\rkpdc\" & strFirm & "\" & strID
objUser.Put "scriptpath", strFirm & ".bat"
objUser.SetInfo
End If
objUser.SetPassword strPwd
objUser.Put "PasswordExpired", CLng(1)
objUser.AccountDisabled = FALSE
objUser.SetInfo
您是否尝试过用实际域替换example.com
GetObject("LDAP://example.com/OU=Users,DC=asp,DC=rippe,DC=com")
设置objOU=GetObject(“LDAP://ou=Users,dc=asp,dc=rippe,dc=com”)
通常,“用户”是一个容器,而不是OU
尝试:
设置objOU=GetObject(“LDAP://CN=Users,dc=asp,dc=rippe,dc=com”)
感谢您的快速回复Sorceri,是的,我已从字符串中删除example.com并将其替换为实际域。@Patrick Stoddard解决了问题吗?(应该有)。如果是,你能把它标记为已回答。如果没有,您是否仍然收到错误?这从来都不是问题,因为这从来不是我的代码的一部分。@Patrick Stoddard因此,当您将其添加到代码中时,您是否能够在不接收服务器上不存在对象的错误消息的情况下进行连接。如果是,则解决了无法连接到OU/容器的问题。新错误是什么?并且-如果您确实需要用户名中的逗号,则需要使用反斜杠(\)对其进行转义。否则,第一个名称将被视为路径的下一部分。不过,我强烈建议不要在用户名中使用comas!让您的生活更轻松,并保持用户名、userprincipalname的第一部分、samaccountname和Mail昵称(如果使用exchange)相同!
Option Explicit
Dim strUserName
Dim objRootLDAP
Dim objContainer
Dim objNewUser
strUserName = "MorganTestUser"
Set objRootLDAP = GetObject("LDAP://rootDSE")
' You can give your own OU like LDAP://OU=TestOU instead of LDAP://CN=Users
Set objContainer = GetObject("LDAP://CN=Users," & _
objRootLDAP.Get("defaultNamingContext"))
Set objNewUser = objContainer.Create("User", "cn=" & strUserName)
objNewUser.Put "sAMAccountName", strUserName
objNewUser.Put "givenName", "Morgan"
objNewUser.Put "sn", "TestUser"
objNewUser.Put "displayName", "Morgan TestUser"
objNewUser.Put "Description", "AD User created by VB Script"
objNewUser.SetInfo
objNewUser.SetPassword "MyPassword123"
objNewUser.Put "PasswordExpired", CLng(1)
objNewUser.AccountDisabled = FALSE
MsgBox ("New Active Directory User created successfully by using VB Script...")
WScript.Quit