由于经常有人问及此方面的问题所以我将整理出来的代码放到这里,大家参考一下:
使用前请添加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= " %26amp; strUser %26amp; ", " %26amp; organizationname %26amp; ", " %26amp; strDomain)
user.ChangePassword(oldPasswd, newPasswd)
Catch ex As Exception
Response.Write( " %26lt;script %26gt;alert('更改用户密码时发生错误( " %26amp; ex.Source %26amp; "): " %26amp; ex.Message %26amp; "') %26lt;/script %26gt; ")
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 %26lt; %26gt; e Then
b = a(i)
d = d %26amp; "DC= " %26amp; a(i) %26amp; ", "
Else
d = d %26amp; "DC= " %26amp; a(i)
End If
Next
havedomainname = d
End Function
0
顶一下0
踩一下