据我所知,在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;
您不能通过UAC设置此属性…http://support.microsoft.com/kb/305144