我猜你正在使用 ASP.NET?我真的没有任何经验,也没有太多的 .NET 经验(我仍在学习自己),但这是一个非常有用的链接,提供了各种 Active Directory API 的示例(链接)。包括重置用户密码。这是 DirectoryEntry 类的链接,如果您不确定如何设置它(链接)。另外,浏览命名空间文档是非常非常有帮助的(链接)。可能我唯一喜欢微软的就是他们的好文档。
我通常会这样做(在 IronPython 中,因此它不会直接转换为您可以使用的代码):
ou = System.DirectoryServices.DirectoryEntry("LDAP://ou=Users,dc=whatever,dc=something,dc=localetc")
search = System.DirectoryServices.DirectorySearcher(ou, "(samAccountName="+acc"+")", Array[str](["distinguishedName"]]))
result = search.FindAll() # note 1
if result.Count != 1:
raise BadError
else:
ent = System.DirectoryServices.DirectoryEntry(result[0].Properties["distinguishedName"][0])
ent.Username = admin # note 2
ent.Password = pwd
ent.Invoke("SetPassword", Array[object](["newpassword!"]))
ent.Properties["LockOutTime"].Value = 0
ent.CommitChanges()
笔记:
如果这会返回多个结果,那么您就会遇到问题。
仅当运行此的帐户无权更改用户时,才需要此和密码。我在一个非私有帐户上运行这些,所以我必须在脚本中包含我的管理员凭据(不用担心,它们不是硬编码的)
哦,你的帐户锁定阈值相当高。我会建议 3-5,这取决于您的用户的能力。