Delphi 10.3 と IPWorks LDAP コンポーネントを使用しています。、 、などunicodePwd
、ほとんどの属性を問題なく変更できます。ただし、ユーザーの属性については、接続が安全でない場合はパスワードを変更できないため、管理者として安全な接続にバインドし、正しい DN を提供した後はもちろん、を設定できません。givenName
mail
userAccountControl
ADS_UF_PASSWD_CANT_CHANGE
const
ADS_UF_NORMAL_ACCOUNT = 512;
ADS_UF_DONT_EXPIRE_PASSWD = 65536;
ADS_UF_PASSWD_CANT_CHANGE = 64;
ADS_UF_LOCKOUT = 16;
ipaLDAP1.DN := searchResultDN;
ipaLDAP1.AttrCount := 1;
ipaLDAP1.AttrType[0] := 'userAccountControl';
ipaLDAP1.AttrValue[0] := IntToStr(ADS_UF_NORMAL_ACCOUNT + ADS_UF_DONT_EXPIRE_PASSWD + ADS_UF_LOCKOUT + ADS_UF_PASSWD_CANT_CHANGE);
ipaLDAP1.AttrModOp[0] := amoReplace;
ipaLDAP1.Modify();
修正できないのがおかしいADS_UF_PASSWD_CANT_CHANGE
。ユーザーには影響しません。ユーザーを確認すると、この属性はまだチェックされていません。理由がわかりません。