データベースから一連のADアカウントを作成するC#アプリを作成しました。私が直面している問題は、収集しているパスワードに複雑さの要件がないことです。そのため、パスワードをドメインに渡すと、「サーバーがリクエストを処理することを望まない」というエラーが表示されます。ドメインにとって十分に複雑ではないため、コードとパスワードの破損を追跡しました。次に、これらのアカウントを作成している特定のOUに対してGPOを作成し、パスワードの複雑さを無効にし、ユーザーとC#アプリを実行しているコンピューターにセキュリティを追加しました。
作成したアカウントのパスワードが変更されるというこのエラーがまだ発生しています。私は何かが足りないのですか、それともこれを回避するためのより良い方法がありますか?
パスワードを作成および変更するためにC#アプリで使用しているコードを含めました。十分に複雑なパスワードを持っているアカウントで機能するため、コードは正しいです。 DCはServer2012ですが、それは重要ではないと思います。
//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を介して、1つのパスワードポリシーのみを定義できます。
次に、きめ細かいパスワードポリシーを設定できますが、GPOの場合のように、きめ細かいパスワードポリシーをOUに適用しないことに注意してください。むしろ、それらをユーザーとグループに適用します。
http://technet.Microsoft.com/en-us/library/cc770394(v = WS.10).aspx