这与我不想污染的这篇文章有些联系。
Active Directory 用户密码到期日期 .NET/OU 组策略
与该线程中的 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
它显示密码到期日期。
我的问题是:
- 为什么我没有将 maxPwdAge 视为属性
- net user 命令从哪里获取密码到期日期以及如何在 C# 代码中获取它?
现在我正在使用控制台应用程序进行测试;在测试这个时,发现目标机器上没有安装.Net 4.0,所以我坚持使用.Net 3.5
我不是服务器管理员,所以我不知道服务器的配置细节。我是这个 AD LDAP 的新手,所以请帮忙。谢谢你。