Windows系統日志中獲取遠程桌面登錄信息,包括登錄賬號、登錄時間、登錄IP以及登錄結果(成功或失敗),你可以使用C#編寫代碼來查詢Windows事件日志。遠程桌面登錄事件通常記錄在Windows事件日志的“安全”日志中,事件ID為4624(登錄成功)和4625(登錄失敗)。
以下是一個示例代碼,展示如何使用C#從Windows事件日志中獲取遠程桌面登錄信息:
using System;
using System.Diagnostics;
namespace RemoteDesktopLogReader
{
class Program
{
static void Main(string[] args)
{
string logType = "Security";
string query = "*[System[(EventID=4624 or EventID=4625)]]";
EventLogQuery eventsQuery = new EventLogQuery(logType, PathType.LogName, query);
using (EventLogReader logReader = new EventLogReader(eventsQuery))
{
EventRecord eventRecord;
while ((eventRecord = logReader.ReadEvent()) != null)
{
int eventID = eventRecord.Id;
DateTime loginTime = eventRecord.TimeCreated.Value;
string accountName = eventRecord.Properties[5].Value.ToString();
string ipAddress = eventRecord.Properties[18].Value.ToString();
string loginResult = (eventID == 4624) ? "Success" : "Failure";
Console.WriteLine($"Login Time: {loginTime}");
Console.WriteLine($"Account Name: {accountName}");
Console.WriteLine($"IP Address: {ipAddress}");
Console.WriteLine($"Login Result: {loginResult}");
Console.WriteLine(new string('-', 40));
}
}
}
}
}
代碼說明:
1. EventLogQuery: 用于定義查詢條件,這里我們查詢“Security”日志中事件ID為4624(登錄成功)和4625(登錄失敗)的事件。
2. EventLogReader: 用于讀取事件日志中的記錄。
3. EventRecord: 表示單個事件記錄,通過它我們可以獲取事件的詳細信息。
4. Properties: 事件記錄的屬性集合,包含了事件的詳細信息。例如,`Properties[5]`通常表示登錄賬號,`Properties[18]`表示登錄IP地址。
注意事項:
- 運行此代碼需要管理員權限,因為訪問安全日志通常需要提升的權限。
- 事件日志中的屬性索引可能會因Windows版本或配置的不同而有所變化,建議在實際使用前先檢查事件日志的結構。
- 如果事件日志非常大,查詢可能會比較慢,可以考慮添加時間范圍過濾條件來優化查詢性能。
運行環境:
- .NET Framework 4.5 或更高版本
- Windows 操作系統
通過這段代碼,你可以獲取遠程桌面登錄的詳細信息,并根據需要進行進一步處理或分析。
相關教程:
C#查看Windows系統最近一周遠程桌面登錄日志,并按照登錄時間降序輸出結果[
171]
http://29565.oa22.cn
C#讀取Windows系統事件日志中最近一天遠程桌面登錄信息代碼(賬號、時間、IP、結果成功或失敗),按照時間降序輸出結果[
152]
http://29568.oa22.cn
?
C#從Windows系統事件日志中獲取遠程桌面登錄信息代碼,包括登錄賬號、登錄時間、登錄IP、登錄結果失敗或成功[
180]
http://29563.oa22.cn
該文章在 2025/2/27 12:45:21 編輯過