Hi would it be possible to create a new user in a top level domain from a child domain with vbscript, I have the script to create new users in the child domain but would like to select the top level domain using named arguments and have the script provide authentication to enable me to do this here is my efforts on this, (obviously could be ver wrong)
I run the script like this from the command line: scriptname.vbs /domain:domainname /ou
uname /user:usernames
'Create new users in OU or Users container using named arguments
On Error Resume Next
Const ADS_SECURE_AUTHENTICATION = 1
Const ADS_USE_ENCRYPTION = 2
Set colNamedArguments = Wscript.Arguments.Named
strOU = colNamedArguments.Item("OU")
strDomain = colNamedArguments.Item("Domain")
For Each user In Split(colNamedArguments.Item("User"),";")
strAdmin = "administrator@modnetwork"
strPassword = "password"
strUser = Trim(user)
If strOU = "users" And strDomain = "modnetwork" Then
strPath = "LDAP://cn=users,dc=modnetwork,dc=testnet,dc=biz"
Set objDSO = GetObject("LDAP:")
Set objOU = objDSO.OpenDSObject(strPath, _
strAdmin, strPassword, ADS_USE_ENCRYPTION AND ADS_SECURE_AUTHENTICATION)
ElseIf strOU <> "users" and strDomain = "modnetwork" Then
Set objDSO = GetObject("LDAP:")
Set objOU = objDSO.OpenDSObject("LDAP://ou=" & strOU & ",dc=modnetwork,dc=testnet,dc=biz", _
strAdmin, strPassword, ADS_USE_ENCRYPTION AND ADS_SECURE_AUTHENTICATION)
ElseIf strOU = "users" And strDomain = "rldom" Then
Set objOU = GetObject("LDAP://cn=users,dc=rldom,dc=modnetwork,dc=testnet,dc=biz")
ElseIf strOU <> "users" and strDomain = "rldom" Then
Set objOU = GetObject("LDAP://ou=" & strOU & ",dc=rldom,dc=modnetwork,dc=testnet,dc=biz")
End If
If Err Then
AdsiErr()
Else
Set objUser = objOU.Create("User", "cn=" & strUser)
objUser.Put "sAMAccountName", strUser
objUser.SetInfo
If Err Then
AdsiErr()
Else
Wscript.Echo "User " & strUser & " has been created in the OU or Container " & strOU
End If
End If
Next
Sub AdsiErr()
If Err.Number = &h80071392 Then
Wscript.Echo "Please check User Name " & strUser & " that object already exists"
Err.Clear
ElseIf Err.Number = &H80005000 Then
Wscript.Echo "Incorrect ADsPath, Path not found. Check ADsPath and try again"
Wscript.Quit
Else
e = Hex(Err.Number)
Wscript.Echo Err.Number & " " & e & " " & Err.Description
Wscript.Quit
End If
End Sub
I run the script like this from the command line: scriptname.vbs /domain:domainname /ou
'Create new users in OU or Users container using named arguments
On Error Resume Next
Const ADS_SECURE_AUTHENTICATION = 1
Const ADS_USE_ENCRYPTION = 2
Set colNamedArguments = Wscript.Arguments.Named
strOU = colNamedArguments.Item("OU")
strDomain = colNamedArguments.Item("Domain")
For Each user In Split(colNamedArguments.Item("User"),";")
strAdmin = "administrator@modnetwork"
strPassword = "password"
strUser = Trim(user)
If strOU = "users" And strDomain = "modnetwork" Then
strPath = "LDAP://cn=users,dc=modnetwork,dc=testnet,dc=biz"
Set objDSO = GetObject("LDAP:")
Set objOU = objDSO.OpenDSObject(strPath, _
strAdmin, strPassword, ADS_USE_ENCRYPTION AND ADS_SECURE_AUTHENTICATION)
ElseIf strOU <> "users" and strDomain = "modnetwork" Then
Set objDSO = GetObject("LDAP:")
Set objOU = objDSO.OpenDSObject("LDAP://ou=" & strOU & ",dc=modnetwork,dc=testnet,dc=biz", _
strAdmin, strPassword, ADS_USE_ENCRYPTION AND ADS_SECURE_AUTHENTICATION)
ElseIf strOU = "users" And strDomain = "rldom" Then
Set objOU = GetObject("LDAP://cn=users,dc=rldom,dc=modnetwork,dc=testnet,dc=biz")
ElseIf strOU <> "users" and strDomain = "rldom" Then
Set objOU = GetObject("LDAP://ou=" & strOU & ",dc=rldom,dc=modnetwork,dc=testnet,dc=biz")
End If
If Err Then
AdsiErr()
Else
Set objUser = objOU.Create("User", "cn=" & strUser)
objUser.Put "sAMAccountName", strUser
objUser.SetInfo
If Err Then
AdsiErr()
Else
Wscript.Echo "User " & strUser & " has been created in the OU or Container " & strOU
End If
End If
Next
Sub AdsiErr()
If Err.Number = &h80071392 Then
Wscript.Echo "Please check User Name " & strUser & " that object already exists"
Err.Clear
ElseIf Err.Number = &H80005000 Then
Wscript.Echo "Incorrect ADsPath, Path not found. Check ADsPath and try again"
Wscript.Quit
Else
e = Hex(Err.Number)
Wscript.Echo Err.Number & " " & e & " " & Err.Description
Wscript.Quit
End If
End Sub