Я создал приложение C #, которое создает серию учетных записей AD из базы данных. Проблема, с которой я сталкиваюсь, заключается в том, что пароли, которые я собираю, не имеют требований к сложности, поэтому, когда я передаю их в наш домен, я получаю сообщение об ошибке: «Сервер не желает обрабатывать запрос». Я отследил свой код и его взлом по паролю, потому что он недостаточно сложен для нашего домена. Затем я создал объект групповой политики для конкретного подразделения, в котором я создаю эти учетные записи, чтобы отключить сложность пароля и для безопасности, которые я добавил в своего пользователя и компьютер, с которого я запускаю свое приложение 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();
Вы можете определить только одну политику паролей через GPO для всего домена.
Затем вы можете установить детализированные политики паролей, однако имейте в виду, что вы не применяете детализированные политики паролей к подразделениям, как это делаете с GPO. Скорее вы применяете их к пользователям и группам.
http://technet.microsoft.com/en-us/library/cc770394(v=WS.10).aspx