Сценарий последнего входа - PullRequest
0 голосов
/ 03 сентября 2018

Я хотел бы знать, как я могу проверить последний вход в мой домен. Мне нужно знать, сколько дней пользователь не вошел в систему (некоторые переменные, которые будут похожи на счетчик). например, файл CSV, который будет с этими переменными:

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

1 Ответ

0 голосов
/ 05 сентября 2018

В качестве небольшого базового скрипта для начала можно использовать что-то вроде этого:

$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.

Имейте в виду, что могут быть странные значения времени для пользователей, которые никогда не входили в систему, поскольку этот сценарий не проверяет действительные или недействительные временные метки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...