上次登录脚本

时间:2018-09-03 09:27:14

标签: powershell active-directory

我想知道如何检查域中的上次登录信息。 我需要知道用户没有登录多少天(有些变量会像计数器一样)。 例如,带有以下变量的CSV文件:

USER- XXX 
Last Log in- DATA  
days logoff- **counter.

1 个答案:

答案 0 :(得分:0)

作为一个小的基础脚本,您可以使用以下代码:

$lastlogon = @()
Get-ADUser -Filter * -Property LastLogonTimestamp | Select SamAccountName,LastLogonTimestamp | Foreach($_) { 
    $item = New-Object System.Object
    $item | Add-Member -type NoteProperty -Name Username -value $_.SamAccountName
    $item | Add-Member -type NoteProperty -Name LastLogon -value $([datetime]::FromFileTime($_.LastLogonTimestamp))
    $diff = New-TimeSpan -Start ([datetime]::FromFileTime($_.LastLogonTimestamp)) -End $(Get-Date) 
    $item | Add-Member -type NoteProperty -Name DaysSince -value $diff.Days
    $lastlogon += $item
}
$lastlogon | Export-Csv -Path C:\Temp\LastLogon.csv -NoTypeInformation -Delimiter ";" -Encoding UTF8

这将获得您域用户全部的LastLogonTimestamp属性,将其转换为更易理解的格式,然后将其写入CSV文件C:\ Temp \ LastLogon.csv例如Excel。 另外,它计算 now LastLogonTimestamp之间的差异,并使用'New-TimeSpan'cmdlet将其写入列DaysSince

您可能希望通过查看Get-AdUser -Filter-SearchBase来缩小搜索范围。

请注意,从未登录的用户可能会有奇怪的时间值,因为此脚本不会检查有效或无效的时间戳。