我们可以使用
Get-ADComputer $computerName -Properties LastLogonDate
获取LastLogonDate
。但是如何知道哪个用户进行了上次登录? Get-ADUser
具有LastLogon
属性,但似乎我们无法使用它来决定用户登录的计算机。
答案 0 :(得分:0)
在这种情况下,你误解了LastLogonDate
的含义。它是计算机帐户上次针对域进行身份验证的时间戳,而不是用户上次登录该特定计算机的时间戳。
要确定上次登录到特定计算机的用户,您需要在该计算机上启用登录事件审核,并从安全事件日志中提取信息(请参阅here):
$computer = '...'
Get-EventLog Security -Computer $computer -InstanceId 4624 -EntryType SuccessAudit |
Where-Object {
$_.Message -match 'logon type:\s+(2|10)\s' -and
$_.Message -match 'new logon:[\s\S]*?account name:\s+(.*?)\s'
} |
Sort-Object TimeGenerated -Desc |
Select-Object -First 1 TimeGenerated, @{n='Account';e={$matches[1]}}
要限制从远程主机检索的数据量,我建议使用开始日期Get-EventLog
运行-After
。处理整个安全事件日志可能需要花费很多时间。