由于经常有人问及此方面的问题所以我将整理出来的代码放到这里,大家参考一下:
使用前请添加COM引用:Active DS Type Library
一下代码在VB.NET下编译通过
Function DomainPassWord() As String
Dim info As New ActiveDs.ADSystemInfoClass()
Dim retDomain As String
retDomain = havedomainname(info.DomainDNSName)
Dim OUname As String = "Users "
Call getuser(retDomain, "Administrator ", OUname, " ", " ")
End Function
Private Sub getuser(ByVal strDomain As String, ByVal strUser As String, ByVal organizationname As String, ByVal oldPasswd As String, ByVal newPasswd As String)
Dim user As ActiveDs.IADsUser
Try
user = GetObject( "LDAP://CN= " & strUser & ", " & organizationname & ", " & strDomain)
user.ChangePassword(oldPasswd, newPasswd)
Catch ex As Exception
Response.Write( " <script >alert('更改用户密码时发生错误( " & ex.Source & "): " & ex.Message & "') </script > ")
Response.End()
End Try
End Sub
Function havedomainname(ByVal strdomainName As String)
Dim a(), b, d As String, i, e As Integer
a = Split(strdomainName, ". ", -1, 1)
e = UBound(a)
For i = 0 To e
If i < > e Then
b = a(i)
d = d & "DC= " & a(i) & ", "
Else
d = d & "DC= " & a(i)
End If
Next
havedomainname = d
End Function
标签: