2011-10-05 8 views
1

私はサーバー上のアクセス日付を監視するプログラムを作成しています。私の目標は、ドメインコントローラ上にある各プロファイルの最後のログイン/アクセス日を取得することですが、どのファイル/設定/プロパティを調べるべきかわかりません。最近、誰かが何かをやっているたびに更新しているように見えるので、私はこれをしたサーバープロファイルの最終ログイン日時は?

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

:現在、私のプログラムは、最後の更新日時をチェックします。しかし、私はいくつか探して、明らかにそのファイルは、ユーザーがログオンしていなくても、ユーザーのレジストリが変更されるたびに更新されます。これは私のプログラムが多くの誤検出を報告するため、私にはうまく機能しません。

TL; DR - Windowsのプロパティまたは特定のファイルがあります。ユーザーの最終ログオン日時を確認する必要がありますか?

ありがとうございました。

答えて

1

LastLoginプロパティを持つIADsUserを照会できます。あなたがDateTime.TryParseの代わりに、CStr関数

を使用することもできます。ここではIADsUser

からプロパティを取得C# and VB.NET exampleだ。ここ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)) 

注意を得るためにmodfiedサンプルコードです

関連する問題