そこで、JNDI を利用した Active Directory で Windows 2003 にユーザー アカウントを作成したいと考えています。次の例に従っています: http://forums.sun.com/thread.jspa?threadID=582103 (最初の投稿)。次のコードは LDAP エラーをスローしています。これは、ユーザーを作成し、パスワードの最小有効期間が 1 日に制限されているパスワードを設定するというニワトリと卵の問題によるものと思われます。
//Replace the "unicdodePwd" attribute with a new value
//Password must be both Unicode and a quoted string
String newQuotedPassword = "\"Password2000\"";
byte[] newUnicodePassword = newQuotedPassword.getBytes("UTF-16LE");
mods[0] = new ModificationItem(DirContext.REPLACE_ATTRIBUTE, new BasicAttribute("unicodePwd", newUnicodePassword));
mods[1] = new ModificationItem(DirContext.REPLACE_ATTRIBUTE, new BasicAttribute("userAccountControl",Integer.toString(UF_NORMAL_ACCOUNT + UF_PASSWORD_EXPIRED)));
// Perform the update
ctx.modifyAttributes(userName, mods);
System.out.println("Set password & updated userccountControl");
Ldap エラー コード: 53 問題 5003 (実行できません) が表示されますが、パスワードの最小有効期間であると思われるパスワードを設定しようとすると、エラーが発生します。本当に奇妙なのは、Active Directory ユーザーとコンピューターにドメイン管理者としてアクセスすると、パスワードも設定できないことです。パスワードを変更する唯一の方法は、[パスワードのリセット] オプションを選択し、[ユーザーは次回のログオン時にアカウントを変更する必要がある] を有効にすることです。これを設定したら、プログラムと GUI の両方でパスワードを設定できます。
また、作成後の次のログオン時にパスワードの変更を設定しようとしましたが、コードでパスワードの変更を行う前に、これも機能しませんでした。ボックスは変更されましたが、それでもパスワードを変更できず、5003 エラーが発生しました。
Windows 2003 で JNDI を使用してパスワードの有効期限が最小のユーザーを作成した経験のある人はいますか? どんな助けでも大歓迎です。