通过用户帐户控制枚举获取"User cannot change password"的替代方法?



据我所知,在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

最新更新