Дата последнего входа в профиль сервера? - PullRequest
1 голос
/ 05 октября 2011

Итак, я пишу программу для мониторинга дат доступа на сервере.Моя цель - получить дату последнего входа в систему / доступа для каждого профиля на контроллере домена, но я не знаю, какой файл / параметр / свойство мне нужно искать.В настоящее время моя программа проверяет дату последнего изменения:

\\my-dc\c$\Documents and Settings\user\NTUSER.DAT.LOG

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

TL; DR - есть ли свойство Windows или определенный файл, на который я должен обратить внимание при проверке последнегодата входа пользователя?

Спасибо.

1 Ответ

1 голос
/ 05 октября 2011

Вы можете запросить IADsUser , который имеет свойство LastLogin.Вот пример C # и VB.NET получение свойства от IADsUser

Вот пример кода, модифицированного для получения lastlogin

Imports System.Reflection
Imports System.DirectoryServices

Dim ent As New DirectoryEntry("LDAP://CN=My User,DC=Fabrikam,DC=com")
Dim ads As [Object] = ent.NativeObject
Dim type As Type = ads.GetType()
Dim firstName As String = CStr(type.InvokeMember( _
    "LastLogin", _
    BindingFlags.GetProperty, _
    Nothing, _
    ads, _
    Nothing))

Примечание: вы можете использоватьDateTime.TryParse вместо CStr

...