由于经常有人问及此方面的问题所以我将整理出来的代码放到这里,大家参考一下: 使用前请添加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 |