2013-01-18 86 views
1

这是有点连接到这个职位,我不想污染。活动目录密码到期日期

Active Directory user password expiration date .NET/OU Group Policy

像在该线程的OP,我试图让通过给定码AD用户名的密码失效日期;然而,上述maxPwdAge在线程中提到的属性不可用时,我试图让所有可用的属性如下:

  PropertyCollection fields = myLDAP.Properties; 

      foreach (String ldapField in fields.PropertyNames) 
      { 
       // cycle through objects in each field e.g. group membership 
       // (for many fields there will only be one object such as name) 

       foreach (Object myCollection in fields[ldapField]) 
        Console.WriteLine(String.Format("{0,-20} : {1}", 
            ldapField, myCollection.ToString())); 
      } 

即使是微软的ADExplorer并没有表现出密码过期日期。

但是当我尝试此命令提示符命令:

net user thatuser /DOMAIN 

它会显示密码过期日期。

我的问题是:

  1. 为什么我看不到maxPwdAge作为属性
  2. 哪里net user命令得到密码截止日期以及如何获得它在C#代码?

现在我正在用控制台应用程序测试这个;当测试这个时,发现目标机器上没有安装.Net 4.0,所以我坚持使用.Net 3.5我不是服务器管理员,所以我不知道配置服务器的细节。我是这个AD LDAP的新手,请大家帮忙。谢谢。

回答

2

maxPwdAge定义密码可以有效的时间长度,而不是过期时间。

它是在组级别设置的属性,而不是用户属性。

你感兴趣的可能是maxPwdAge + pwdLastSet

pwdLastSet是用户属性)

2

在我的项目之一,我不得不读域对象maxPwdAge和值添加到用户的财产lastPwdSet