AD中的lastLogon属性表示用户最后一次登录的时间,该属性的更新时间是在用户登录时更新的,也就是通过LDAP绑定到AD域控制器上时更新。
以下是使用C#代码示例来获取用户最后一次登录时间的方法:
// 引用 System.DirectoryServices 命名空间
using System.DirectoryServices;
// 设置 LDAP 路径和用户名密码
string ldapPath = "LDAP://example.com";
string username = "admin";
string password = "password";
// 创建 LDAP 对象,并绑定到 AD 域控制器上
DirectoryEntry directoryEntry = new DirectoryEntry(ldapPath, username, password);
// 创建 LDAP 搜索对象,指定搜索条件为所有用户
DirectorySearcher searcher = new DirectorySearcher(directoryEntry);
searcher.SearchScope = SearchScope.Subtree;
searcher.Filter = "(objectClass=user)";
// 循环遍历搜索结果,获取每个用户的最后一次登录时间
foreach (SearchResult searchResult in searcher.FindAll())
{
DirectoryEntry user = searchResult.GetDirectoryEntry();
string lastLogonValue = user.Properties["lastLogon"].Value.ToString();
// 将 lastLogon 值转换为 DateTime 对象
long lastLogonTicks = long.Parse(lastLogonValue);
DateTime lastLogonTime = DateTime.FromFileTime(lastLogonTicks);
Console.WriteLine("Username: {0}, Last logon time: {1}", user.Properties["samaccountname"].Value, lastLogonTime);
}