禁用 OU 和 C# 应用创建 AD 帐户的密码复杂性

禁用 OU 和 C# 应用创建 AD 帐户的密码复杂性

我创建了一个 C# 应用程序,它从数据库中创建了一系列 AD 帐户。我遇到的问题是,我收集的密码没有复杂性要求,因此当我将它们传递到我们的域中时,我收到一条错误消息,提示“服务器不愿意处理请求”。我跟踪了我的代码,它破解了密码,因为它对于我们的域来说不够复杂。然后,我为创建这些帐户的特定 OU 创建了一个 GPO,以禁用密码复杂性,为了安全起见,我添加了我的用户和我运行 C# 应用程序的计算机。

我仍然遇到此错误,它会更改我创建的帐户的密码。我是否遗漏了什么,或者有更好的方法可以解决这个问题?

我已经将用于创建和更改密码的代码包含在 C# 应用程序中。该代码是正确的,因为它适用于密码足够复杂的帐户。DC 是 Server 2012,但我认为这并不重要。

                //Creates User
            string cnUser = acctNumber + "_" + userName;
            DirectoryEntry newUser = dirEntry.Children.Add("CN=" + cnUser, "user");
            newUser.Properties["samAccountName"].Value = cnUser;
            newUser.Properties["userPrincipalName"].Value = cnUser;
            newUser.Properties["pwdLastSet"].Value = 0;
            newUser.CommitChanges();

            //Changes Password
            String passwrd = userPassword.ToString();
            newUser.Invoke("SetPassword", new object[] { passwrd });
            newUser.CommitChanges();

            //Sets User Account to Change Passowrd on new login
            newUser.Properties["pwdLastSet"].Value = 0;
            newUser.CommitChanges();

答案1

您只能通过 GPO 为整个域定义一个密码策略。

然后,您可以设置细粒度的密码策略,但请注意,您不会像对 GPO 那样将细粒度的密码策略应用于 OU。相反,您会将它们应用于用户和组。

http://technet.microsoft.com/en-us/library/cc770394(v=WS.10).aspx

相关内容