Powershell远程计算机中的最后一个登录用户

时间:2017-05-23 13:02:58

标签: powershell

我想要一个收集组织计算机所有登录的脚本,并显示上次用户登录和计算机中用户访问次数最多。

我从域控制器运行此脚本,但我只获得计算机和上次登录,我没有最后一次用户登录或登录频率。

Get-ADComputer -Filter * -Properties * | FT Name, LastLogonDate, user -Autosize

1 个答案:

答案 0 :(得分:2)

您可以搜索计算机上的安全事件日志以获取其上次登录信息。

$startDate = (Get-Date) - (New-TimeSpan -Day 5)
$UserLoginTypes = 2,7
Get-WinEvent  -FilterHashtable @{Logname='Security';ID=4624;StartTime=$startDate}  | SELECT TimeCreated, @{N='Username'; E={$_.Properties[5].Value}}, @{N='LogonType'; E={$_.Properties[8].Value}} | WHERE {$UserLoginTypes -contains $_.LogonType}  | Sort-Object TimeCreated | SElect -last 1

这将在过去7天内搜索计算机上的交互式登录或解锁,并返回最新的。

更新以获得大多数登录信息:

$startDate = (Get-Date) - (New-TimeSpan -Day 7)
$UserLoginTypes = 2,7
Get-WinEvent  -FilterHashtable @{Logname='Security';ID=4624;StartTime=$startDate}  | SELECT TimeCreated, @{N='Username'; E={$_.Properties[5].Value}}, @{N='LogonType'; E={$_.Properties[8].Value}} | WHERE {$UserLoginTypes -contains $_.LogonType}  | group UserName |  Sort-Object Count | Select -last 1