在AD中的计算机上获取LastLogonUser和LastLogonDate

时间:2014-08-07 23:05:26

标签: powershell active-directory ldap

我们可以使用

Get-ADComputer $computerName -Properties LastLogonDate

获取LastLogonDate。但是如何知道哪个用户进行了上次登录? Get-ADUser具有LastLogon属性,但似乎我们无法使用它来决定用户登录的计算机。

1 个答案:

答案 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。处理整个安全事件日志可能需要花费很多时间。