我试图创建一个脚本来查询我域中特定用户的所有用户并获取最后一个" lastLogonTimestamp"从每个用户,并将结果导出到csv文件。例如:" SOL *"对于开始使用SOL的用户 我获得了大多数用户的结果"上次登录日期"日期31/12/1600 06:00:00 pm但我不知道为什么有些用户得到正确的日期,而其他用户得到的是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='LastLogon'; E={[DateTime]::FromFileTime($_.LastLogon)}},Manager,Title,Department,Organization,Enabled}|
Group samaccountname |
ForEach{$_.Group | Sort LastLogon -Descending | Select -First 1} |
Export-Csv "C:\export\AD_Export.csv" -NoTypeInformation
答案 0 :(得分:0)
这意味着用户从未使用该特定DC登录。
例如,美国的员工在登录期间可能永远不会联系欧洲DC。在这种情况下,欧洲DC上的lastlogon将是“31/12/1600 06:00:00 p.m”(lastlogon的最小值是1601年1月1日(UTC),您看到的时间是“时区划分”)。
还有一件事, lastLogonTimestamp 和 lastLogon 是2个不同的属性。
lastLogon 记录确切的登录时间,但不会在DC中复制
复制 lastLogonTimestamp ,但它只是一个近似值
(默认情况下,它可以比实际值提前<= 14天,仅对查找空闲帐户有用...)
在您的情况下,您实际上是在谈论 lastLogon 。