2017-04-04 104 views
0

我想創建一個小型控制檯應用程序,該應用程序將具有倒數計時器。 我需要知道我第一次登錄到Windows的時間戳。獲取當天的第一次登錄

我該怎麼做? 我發現我可以使用WMIC:

wmic netlogin get lastlogon爲了接收上次登錄時間,但我想要第一次登錄的一天。

+1

嘗試搜索事件日誌 –

回答

1

如果您有足夠的權限,則可以使用System.Diagnostics.EventLog類。

登錄事件存儲在安全日誌中,與事件ID = 4624(在.NET類EVENTID音符現在已經過時& INSTANCEID應該被使用。

你可以得到日誌條目與下面的完整列表代碼:

using System.Diagnostics; 
.... 
.... 
EventLog eventLogItem = new EventLog("Security"); 

您可以查詢日誌&提取物只是登錄附件如下:

var sev = eventLogItem.Entries.Cast<EventLogEntry>().Where(ev => (ev.InstanceId == 4624)); 

您可以到這個限制只是你想要的東西,如用戶:

var sev = eventLogItem.Entries.Cast<EventLogEntry>().Where(ev => (ev.InstanceId == 4624) 
    && (ev.Message.Contains(@"username"))); 

如果檢查消息您可以改善過濾。然後您可以按生成時間&的順序選擇當天的最早時間。