none
有关于System.DirectoryServices.AccountManagement 操作AD域账号问题 RRS feed

  • 问题

  •  从 UserPrincipalName 继承扩展了一个类 ADUserPrincipalName,并写了几个AD域账号的属性,比如: UserPrincipalName,PasswordExpired,Department,Company;

    其它属性都能正常获取和设置,唯独PasswordExpired 一直获取都是null,获取该属性是为了检查AD域账号的密码是否过期,代码大概如下面所写:

    [DirectoryProperty("PasswordExpired")]

    public string PasswordExpired {

        get { var result = this.ExtensionGet("PasswordExpired");  ... }

    }

    result 变量总是为 null,为了验证该AD域账号是否存在PasswordExpired 属性,在域控(WinServer2012 R2, 域控等级为WinServer2012 R2)中用powershell 打印了一个密码过期的用户的属性

    Get-ADUser -Identity it01 -Properties PasswordExpired

    得到以下结果:

    DistinguishedName : CN=it01,OU=it,DC=tad,DC=local
    Enabled           : True
    GivenName         : it01
    Name              : it01
    ObjectClass       : user
    ObjectGUID        : c5a247c0-efeb-47a5-a341-5573d590364e
    PasswordExpired   : True
    SamAccountName    : it01
    SID               : S-1-5-21-4238215597-1604080069-2476239886-1113
    Surname           :
    UserPrincipalName : it01@tad.local

    可以说明该域账号是存在PasswordExpired 属性,但是为什么用ExtensionGet() 方法就无法获取呢?



    2016年11月16日 8:12