3

Я пытаюсь получить список пользователей с их временем входа в систему (n раз, если они вошли в систему более одного раза) за определенный промежуток времени, например, между 14:00 и 15:00 10.10.2012.

Я возился с PowerShell, но ничего не мог с этим поделать, скачал расширения PowerShell из Quest, попробовал некоторые фрагменты, но не смог найти то, что соответствует моим потребностям.

Я предполагаю, что нужно запрашивать события на сервере Active Directory, но я не смог получить фрагмент, который работает до сих пор.

2 ответа2

2

@ansgar правильный, AD хранит только время последнего входа в систему (lastlogontimestamp) для каждой учетной записи. Если вам этого достаточно, вот быстрый скрипт, который извлекает значение lastlogontimestamp для каждого пользователя:

$a = [adsisearcher]'(&(objectcategory=user)(objectclass=user))'
$a.PageSize = 1000
[void]$a.PropertiesToLoad.Add('name')
[void]$a.PropertiesToLoad.Add('lastlogontimestamp')
$a.FindAll() | ForEach-Object {
    $op = '' | select name,llts
    $op.name = $_.properties.name[0]
    if($_.properties.lastlogontimestamp)
    {
        $op.llts=[datetime]::fromfiletime($_.properties.lastlogontimestamp[0])
    }
    else
    {
        $op.llts=$null
    }
    $op
} | Format-Table -AutoSize
1

Active Directory хранит только метку времени последнего входа в систему. Для истории входа в систему вы должны будете проанализировать журналы событий безопасности на всех контроллерах домена для событий входа / выхода из системы. Остерегайтесь ловушек, пока вы делаете это.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .