В качестве небольшого базового скрипта для начала можно использовать что-то вроде этого:
$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
и записывает ее в столбец DaysSince
с помощью командлета New-TimeSpan.
Вы можете сузить область поиска, посмотрев на Get-AdUser -Filter
или -SearchBase
.
Имейте в виду, что могут быть странные значения времени для пользователей, которые никогда не входили в систему, поскольку этот сценарий не проверяет действительные или недействительные временные метки.