当我尝试添加用户异常时:服务器不愿意处理请求.并设置密码异常:由调用的目标引发

本文关键字:异常 设置 密码 调用 目标 请求 不愿意 添加 用户 服务器 处理 | 更新日期: 2023-09-27 18:35:15

我试图像下面那样做,得到

"服务器不愿意处理请求",因为这行newUser.Invoke("Put", new object[] { "userAccountControl", "512" });我评论它,它是工作,但从这个newUser.Invoke("SetPassword", new object[] { model.Password });中发现了"由调用目标抛出"的新异常

在此之前,我使用窗口服务器2003R2(VM)到活动目录没有问题。现在我使用窗口服务器2012R2有问题为什么?

     ConnectAD con = new ConnectAD();
                DirectoryEntry de = con.GetConnection();
                Utility ut = new Utility();
                using (DirectorySearcher searcher = new DirectorySearcher(de))
                {
                    searcher.Filter = string.Format("(&(objectClass=user)(sAMAccountName={0}))", model.UserName);
                    using (SearchResultCollection resultUser = searcher.FindAll())
                    {
                        bool DoesExistUsesr = resultUser.Count > 0;
                        if (!DoesExistUsesr)
                        {//User doesn't exist
                            searcher.Filter = string.Format("(&(objectClass=organizationalUnit)(ou={0}))", model.Group);
                            using (SearchResultCollection resultOU = searcher.FindAll())
                            {
                                bool DoesExistOU = resultOU.Count > 0;
                                if (DoesExistOU)
                                {//OU does exist
                                    de.Path = ut.SetChildPath("OU=" + model.Group);//"LDAP://" + Properties.Settings.Default.domainMyAD + "/" + "OU=" + model.Group + "," + Properties.Settings.Default.pathMyAD;
                                    DirectoryEntry newUser = de.Children.Add("CN=" + model.UserName, "user");
                                    newUser.Properties["displayName"].Value = model.Name + " " + model.Surname;
                                    newUser.Properties["givenName"].Value = model.Name;
                                    newUser.Properties["sn"].Value = model.Surname;
                                    newUser.Properties["mail"].Value = model.Email;
                                    newUser.Properties["department"].Value = model.Department;
                                    newUser.Properties["title"].Value = model.Title;
                                    newUser.Properties["userPrincipalName"].Value = model.UserName + "@" + Properties.Settings.Default.domainMyAD;
                                    newUser.Properties["sAMAccountname"].Value = model.UserName;
                                    newUser.Properties["PwdLastSet"].Value = -1;
                                    newUser.CommitChanges(); 
                                    newUser.Invoke("SetPassword", new object[] { model.Password }); //<-- ***thrown by the target of an invocation***
                                    newUser.Invoke("Put", new object[] { "userAccountControl", "512" });
                                    newUser.CommitChanges();
                                }....

提前谢谢。

内部异常:密码不符合密码策略要求。检查最小密码长度,密码复杂性和密码历史记录要求 - 错误代码:800708c5

当我尝试添加用户异常时:服务器不愿意处理请求.并设置密码异常:由调用的目标引发

不能启用没有密码的帐户(这是将 userAccountControl 设置为 512 所做的)。您必须在保存新帐户后执行此操作。

但也不需要使用 Invoke 来设置 userAccountControl 属性。在第一次提交更改之后尝试此操作:

...
//newUser.Invoke("Put", new object[] { "userAccountControl", "512" }); <-- Remove this
newUser.CommitChanges();
newUser.Invoke("SetPassword", model.Password);
newUser.Properties["userAccountControl"].Value = 512;
newUser.CommitChanges();

我解决了。关于密码复杂性的内部异常(大写、小写、长度)。在这种情况下,我测试使用密码123创建帐户。我是AD的新手:(