web-dev-qa-db-ja.com

ADアカウントを作成するOUおよびC#アプリのパスワードの複雑さを無効にする

データベースから一連の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();
3
Calvin Piche

ドメイン全体に対してGPOを介して、1つのパスワードポリシーのみを定義できます。

次に、きめ細かいパスワードポリシーを設定できますが、GPOの場合のように、きめ細かいパスワードポリシーをOUに適用しないことに注意してください。むしろ、それらをユーザーとグループに適用します。

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

4
Ryan Ries