据我所知,在 Active Directory 中设置复选框“用户无法更改密码”应该会导致属性“userAccountControl”设置位 0x40。
不幸的是,当我在 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;