gpt4 book ai didi

c# - 使用 DirectoryEntry 对象调用 ChangePassword

转载 作者:太空狗 更新时间:2023-10-29 22:55:13 24 4
gpt4 key购买 nike

无论我试图向它抛出什么,这里的这个方法总是导致以下异常:

         var retVal = this.DirectoryEntry.Invoke("ChangePassword", new object[] { oldPassword, newPassword }) == null;

InnerException = {"密码不符合密码策略要求。检查最小密码长度、密码复杂性和密码历史要求。(异常来自 HRESULT:0x800708C5)"}

我自然而然地检查了域默认策略(在我的测试域中没有找到)、OU 组策略(不存在)并且找不到任何可以管理密码策略的东西,但是无论我提供的密码有多长或多复杂功能是,它会导致相同的异常。现在是最有趣的部分当我通过调用以下命令执行相同的操作(对于相同的 DirectoryEntity 对象和相同的密码)时:

 var retVal = this.DirectoryEntry.Invoke("SetPassword", new object[] { newPassword }) == null;

最后一次调用成功,没有任何问题。

最佳答案

有许多组策略会影响密码的复杂性。在您安装 Active Directory 后,它们中的大多数在默认情况下处于打开状态。如果您在设置测试域后从未接触过它们,很可能这些密码策略仍然有效。

这是我的测试域默认域安全设置的样子。如果您之前没有更改它,它应该看起来很相似。

Default Domain Security Settings

您可以在 MSDN 上找到每项政策的详细说明。我将在此处包含一个摘要和一个链接。

以上所有设置都可能是您的 0x800708C5 错误的原因。特别是,我猜这是给您带来麻烦的“密码最短使用期限”密码策略。默认设置为 1 天。如果您的测试账号是刚刚创建的新用户账号,则当天不能修改密码。

所以现在,您可能认为在您的测试环境中,您应该禁用所有这些密码策略以用于开发目的。我不建议通过取消选中属性页中的复选框来简单地使所有策略未定义。我会推荐以下设置。

您需要做的最后一步是再次将组策略填充到您的计算机。请记住,组策略是存储在 Active Directory 上的设置。机器组策略在机器启动时应用,而用户组策略在用户登录时应用。密码策略是这些机器策略之一。因此,您现在可以重新启动计算机,也可以转到命令提示符并运行 gpupdate

希望我没有错过任何重要信息。让我知道它是否仍然不起作用:)

关于c# - 使用 DirectoryEntry 对象调用 ChangePassword,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4869283/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com