Active Directoryで「ユーザーはパスワードを変更できません」チェックボックスを設定することができた限り、ビット0x40が設定されたプロパティ「userAccountControl」が発生するはずです。
残念ながら、これを Windows Server 2012 R2 でテストしているため、何らかの理由でビットが設定されません。
別の方法はありますか?ユーザーが自分のパスワードを変更できるかどうかを判断しますか? それとも、この不思議な効果を説明する条件/制限はありますか?
私はc#.NET 2.0を使用しています
public enum EUserAccountControl : int
{
//SNIP
PASSWORD_CANT_CHANGE = 0x00000040,
//SNIP
}
// SNIP
DirectorySearcher srch = new DirectorySearcher(searchRoot);
srch.Filter = "(SAMAccountName=" + accountName + ")";
var result = srch.FindOne();
var entry = result.GetDirectoryEntry();
return ((EUserAccountControl)entry.Properties["userAccountControl"].Value & EUserAccountControl.PASSWORD_CANT_CHANGE) == 0;