我想要一个收集组织计算机所有登录的脚本,并显示上次用户登录和计算机中用户访问次数最多。
我从域控制器运行此脚本,但我只获得计算机和上次登录,我没有最后一次用户登录或登录频率。
Get-ADComputer -Filter * -Properties * | FT Name, LastLogonDate, user -Autosize
答案 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