如何获取本地Windows帐户的到期日期?

时间:2011-06-28 12:55:59

标签: c# asp.net

我需要像这样创建C#方法:

    void deleteExpiredAccounts(String Account,dateTime expirationDate)
    {
      if(expirationDate == DateTime.Now)
      {
        DirectoryEntry localDirectory = new DirectoryEntry("WinNT://" + Environment.MachineName + ",computer"); 
        DirectoryEntries users = localDirectory.Children;
        DirectoryEntry user = users.Find(Account); 
        users.Remove(user);
      }
    }

任何想法都会受到赞赏......谢谢!

3 个答案:

答案 0 :(得分:3)

以下代码可以帮助我获取域和本地用户帐户的密码到期日期:

public static DateTime GetPasswordExpirationDate(string userId, string domainOrMachineName)
{
    using (var userEntry = new DirectoryEntry("WinNT://" + domainOrMachineName + '/' + userId + ",user"))
    {
        return (DateTime)userEntry.InvokeGet("PasswordExpirationDate");
    }
}

答案 1 :(得分:0)

结帐maxPwdAge

尝试

Console.Writeline( user.Properties["maxPwdAge"].ToString());

答案 2 :(得分:0)

除非我非常错误,否则LOCAL 帐户不会过期,因此没有此类属性。当您需要在给定时间段后终止帐户关系时,帐户到期对域级帐户有价值。

现在,如果您正在谈论本地帐户密码到期,这是一个完全不同的故事,但我无法想象您为什么要根据过期的密码删除本地计算机用户。