如何从特定用户的所有 DC 获取 lastLogonTimestamp

How to get lastLogonTimestamp from all DCs for specific users

我正在尝试制作一个脚本来查询我域中特定用户的所有用户,并从每个用户获取最后一个 "lastLogonTimestamp",并将结果导出到 csv 文件。例如:"SOL*" 对于开始使用 SOL 的用户 我为大多数用户获得了 "last logon date" 日期 31/12/1600 06:00:00 p.m 的结果,但我不知道为什么某些用户获得正确的日期而其他用户获得正确的日期1600 年,无论它们是否在同一个 OU 中。

Get-ADDomainController -filter * | 
% {Get-ADUser -Filter "Enabled -eq 'True' -and SamAccountName -like 'SOL*'" -server $_.name -Properties         Name,SamAccountName,Description,EmployeeID,EmployeeNumber,EmailAddress,LastLogon,Manager,Title,Department,Organization,Enabled -SearchBase "OU=users,DC=contoso,DC=local" | 
Select Name,SamAccountName,Description,EmployeeID,EmployeeNumber,EmailAddress,@{N='Last‌​Logon'; E={[DateTime]::FromFileTime($_.LastLogon)}},Manager,Title,Department,Organizatio‌​n,Enabled}|
Group samaccountname |
ForEach{$_.Group | Sort LastLogon -Descending | Select -First 1} |
Export-Csv "C:\export\AD_Export.csv" -NoTypeInformation

这意味着用户从未使用该特定 DC 登录。

例如,美国的员工在登录期间可能永远不会联系欧洲 DC。在这种情况下,欧洲 DC 上的 lastlogon 将是“31/12/1600 06:00:00 p.m”(lastlogon 的最小值是 1601 年 1 月 1 日(UTC),您看到的时间是 "time-zoned").

还有一点,lastLogonTimestamplastLogon 是 2 个不同的属性。
lastLogon 记录准确的登录时间,但不在 DC 之间复制。
lastLogonTimestamp 已复制,但它只是一个近似值。
(默认可以比实际值早 <= 14 天,只对查找闲置账户有用...)

在你的情况下,你实际上是在谈论 lastLogon