Zyg*_*ygD 14 windows login active-directory
An employee left the company. I try to find out when his AD account was logged in for the last time - if it was before the dismissal or after.
用户属性窗口中有这 2 个属性:lastLogon和lastLogonTimestamp。lastLogon日期早于解雇日期,但lastLogonTimestamp日期晚于解雇日期(因此在这种情况下我们会遇到安全问题)。
如何知道,这些属性中的哪一个显示了实际的上次 AD 帐户登录时间?它们之间有什么区别?
Gre*_*kew 15
使用最新的属性。
Lastlogon 仅在执行身份验证的域控制器上更新,不会被复制。
LastLogontimestamp 被复制,但默认情况下仅当它比以前的值早 14 天或更长时间。
其他答案遗漏了一个重要细节,但在调查问题中提到的案件时,这一细节可能至关重要。
即使没有执行实际登录,LastLogonTimeStamp也可以更新!
例如,您可以在检查具有足够旧的 LastLogonTimestamp 值的帐户的“有效权限”后立即查看 LastLogonTimeStamp 属性如何更新。
当您遇到类似屏幕截图中的情况时,您会看到某人帐户的相对较新的 LastLogonTimestamp,则应检查所有域控制器的 LastLogon 属性值。
如果它们都早于 LastLogonTimestamp,那么这可能意味着没有“真人输入”,我的意思是有人登录到工作站或远程桌面会话。
但同时,您不能 100% 确定,因此您应该检查所有可用日志,以确保该帐户没有用于任何其他目的(从移动设备同步邮件或类似的目的)...
最后,您应该仅将lastLogon 和lastLogonTimestamp 视为查找过时帐户的方法。
并且出于安全原因,您必须提前设置所有必要的审核设置,然后使用审核日志进行调查。
不要管最后的登录!
TL;DR - 如果您想要最准确的登录时间,您必须lastLogon
从所有域控制器查询属性。如果可以接受 ±19 天的容差,那么您可以lastLogonTimestamp
从最近的域控制器中读取数据。
此属性不会被复制,而是在域中的每个域控制器上单独维护。要获取域中用户上次登录的准确值,必须从域中的每个域控制器中检索用户的 Last-Logon 属性。检索到的最大值是该用户的真实上次登录时间。
https://docs.microsoft.com/en-us/windows/desktop/adschema/a-lastlogon#remarks
每当用户登录时,都会从 DC 读取此属性的值。如果值较旧 [ current_time -
msDS-LogonTimeSyncInterval
],则更新该值。域功能级别提升后的初始更新计算为 14 天减去 5 天的随机百分比。
https://docs.microsoft.com/en-us/windows/desktop/adschema/a-lastlogontimestamp
FILETIME
(Int64
在 .Net/PowerShell 中)。LastLogonDate
属性。我更愿意提供 Microsoft 特定的文档来确认这一点,但大多数消息来源都说并且我的测试证实它已lastLogonTimestamp
转换为 al?o?c?a?l? DateTime
价值。我使用这个 Powershell 单行查询所有 DC 以获取用户的 LastLogon。然后您可以使用最新的结果作为最近的登录
Get-ADDomaincontroller -Filter * | % {$DC = $_.name ; Get-ADuser jimbo -properties * -Server $_.name | select @{n="LastLogon";e={[datetime]::FromFileTime($_.lastlogon)}},@{n="DC";e={$DC}} }
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
85148 次 |
最近记录: |