I have been tasked with creating a Query and Creation tool that will interact with all three of the directories we have in place. I have been able to create the query portion and I am almost done with the creation portion but I have run into a brick wall.
Early in the development I decided I was going to use a secure connection to the directories but, as I programmed the code I found out the only way I could connect successfully was by using "AuthenticationTypes.ServerBind". When I attempted to use "AuthenticationTypes.Secure" I received a DirectoryServicesCOMException. So I just went with ServerBind.
Now to the problem I am currently having. I can create a user and set attributes but when I attempt to set the password I receive a "invalid target of the invocation message". If anyone knows anything about this I would be in their debt. Even if you can point me to someone elses source code for me to study.
Thanks
Here is the code
Early in the development I decided I was going to use a secure connection to the directories but, as I programmed the code I found out the only way I could connect successfully was by using "AuthenticationTypes.ServerBind". When I attempted to use "AuthenticationTypes.Secure" I received a DirectoryServicesCOMException. So I just went with ServerBind.
Now to the problem I am currently having. I can create a user and set attributes but when I attempt to set the password I receive a "invalid target of the invocation message". If anyone knows anything about this I would be in their debt. Even if you can point me to someone elses source code for me to study.
Thanks
Here is the code
VB.NET:
Private Sub CreateADAccount(ByVal strUserName As String, ByVal strPassword As String, ByVal strFirstName As String, ByVal strMiddleName As String, ByVal strLastName As String, ByVal strSSN As String, ByVal strTitle As String)
Dim dirRoot As DirectoryEntry = New DirectoryEntry("LDAP://" & ADServer, My.Settings.strADUserName, My.Settings.strADPassword, AuthenticationTypes.Secure)
Dim NewUser As DirectoryEntry = dirRoot.Children.Add("CN=" & strUserName, "User") 'This is where it will error out if AuthenticationTypes.Secure is used
NewUser.CommitChanges()
NewUser.Properties("userPrincipalName").Value = strUserName & "@mydomain.com"
NewUser.Properties("sAMAccountName").Value = strUserName
NewUser.Properties("givenName").Value = strFirstName
NewUser.Properties("sn").Value = strLastName
NewUser.Properties("initials").Value = strMiddleName
NewUser.Properties("title").Value = strTitle
NewUser.Properties("employeeNumber").Value = strSSN
NewUser.CommitChanges()
Try
NewUser.Invoke("SetPassword", New Object() {strPassword})
NewUser.CommitChanges()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub