更改Active Directory用户密码

时间:2010-09-29 04:48:43

标签: language-agnostic active-directory

如何在不知道旧密码的情况下使用目录服务更改Active Directory用户密码?

3 个答案:

答案 0 :(得分:3)

您可能正在搜索SetPassword方法,您应该在DirectoryEntry对象上调用该方法。

点击此处查看“重置用户密码”示例:Howto: (Almost) Everything In Active Directory via C#

修改
如果您遇到目录条目为null的问题,则可能是路径错误。路径应该是这样的:

DirectoryEntry entry = new DirectoryEntry("LDAP://CN=johndoe,CN=Users,DC=acme,DC=com");

答案 1 :(得分:0)

作为一名MCSE,我每天都会多次重置密码,所以我可以告诉你一些事情。

使用Active Directory密码基本上可以执行两项操作 - 更改和重置。更改密码要求您知道帐户的当前密码,但重置密码不需要您知道帐户的当前密码,因此在某种程度上,为了在不知道密码的情况下更改用户密码,您真的需要对帐户执行密码重置操作。

顺便说一句,我相信有两个单独的Active Directory扩展权限可以控制这些权限,但我并不熟悉它们,因为我是一个委派管理员,他被授予了abillity。

因此,请记住,如果您没有在目标用户帐户上授予重置密码权限,则重置用户密码的任何尝试都将失败。

答案 2 :(得分:0)

在.net 3.5中引入了一个名为System.DirectoryServices.AccountManagement的新库。它简化了用户管理工作。

    public void ChangePassword(string dn, string newPassword)
    {
        using (var context = new PrincipalContext(ContextType.Domain))
        {
            using (var user = UserPrincipal.FindByIdentity(context, IdentityType.DistinguishedName, dn))
            {
                user.SetPassword(newPassword);
            }
        }
    }