通常可以在Windows中更改自己的密码,没有管理员权限。
我正在编写一个工具来管理多个服务器/客户端上的用户和组。我还想让客户有权编辑自己的密码。客户当然没有管理员权限。要更改用户密码拥有管理员权限,我使用了DirectoryEntry,如下所示:
try
{
DirectoryEntry localDirectory =
new DirectoryEntry("WinNT://" + Environment.MachineName.ToString());
DirectoryEntries users = localDirectory.Children;
DirectoryEntry user = users.Find(username);
user.Invoke("SetPassword", newPassword);
Console.WriteLine("Success!");
Console.ReadLine();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
Console.ReadLine();
}
这里的问题是,如果没有admin-rights,则DirectoryServices不可用。因此,我希望有一个无需管理员权限的解决方案(仅用于更改您自己的密码)。
答案 0 :(得分:4)
SetPassword
需要管理员权限才能执行 - 这不是您可能想要做的事情。 ChangePassword
不会,也不会被最终用户自己使用。它将旧密码和新密码作为参数。
这将是执行此操作的首选方式,它还将验证其身份。
答案 1 :(得分:1)