狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

C#讀取Windows系統事件日志中最近一天遠程桌面登錄信息代碼(賬號、時間、IP、結果成功或失敗),按照時間降序輸出結果

admin
2025年2月27日 0:30 本文熱度 1133

在C#中,可以使用 System.Diagnostics.Eventing.Reader 命名空間來讀取Windows系統事件日志。以下是讀取最近一天遠程桌面登錄信息,并按登錄時間降序輸出的代碼示例:

using System;

using System.Collections.Generic;

using System.Diagnostics.Eventing.Reader;

using System.Globalization;

using System.Linq;


class Program

{

    static void Main()

    {

        // 獲取最近一天的時間

        DateTime oneDayAgo = DateTime.Now.AddDays(-1);


        // 事件日志查詢條件

        string query = @"<QueryList>

                          <Query Id='0' Path='Security'>

                            <Select Path='Security'>

                              *[System[

                                (EventID=4624 or EventID=4625)

                                and TimeCreated[@SystemTime >= '" + oneDayAgo.ToString("yyyy-MM-ddTHH:mm:ss.fffZ", CultureInfo.InvariantCulture) + @"']

                              ]]

                            </Select>

                          </Query>

                        </QueryList>";


        List<RemoteDesktopLoginInfo> loginInfos = new List<RemoteDesktopLoginInfo>();


        using (EventLogQuery eventLogQuery = new EventLogQuery("Security", PathType.LogName, query))

        using (EventLogReader eventLogReader = new EventLogReader(eventLogQuery))

        {

            EventRecord eventRecord;

            while ((eventRecord = eventLogReader.ReadEvent())!= null)

            {

                bool isSuccess = eventRecord.Id == 4624;

                string account = eventRecord.Properties[5].Value.ToString();

                DateTime loginTime = eventRecord.TimeCreated.Value;

                string ip = eventRecord.Properties[18].Value.ToString();


                loginInfos.Add(new RemoteDesktopLoginInfo

                {

                    Account = account,

                    LoginTime = loginTime,

                    IP = ip,

                    IsSuccess = isSuccess

                });

            }

        }


        // 按登錄時間降序排序

        loginInfos = loginInfos.OrderByDescending(info => info.LoginTime).ToList();


        // 輸出結果

        foreach (var info in loginInfos)

        {

            Console.WriteLine($"賬號: {info.Account}");

            Console.WriteLine($"登錄時間: {info.LoginTime}");

            Console.WriteLine($"IP: {info.IP}");

            Console.WriteLine($"登錄結果: {(info.IsSuccess? "成功" : "失敗")}");

            Console.WriteLine("---------------------------");

        }

    }

}


class RemoteDesktopLoginInfo

{

    public string Account { get; set; }

    public DateTime LoginTime { get; set; }

    public string IP { get; set; }

    public bool IsSuccess { get; set; }

}

代碼說明: 

1. 獲取最近一天的時間:使用 DateTime.Now.AddDays(-1) 獲取當前時間往前推一天的時間。

2. 事件日志查詢條件:構造一個XML格式的查詢語句,查詢 Security 日志中 EventID 為4624(成功登錄)或4625(失敗登錄),并且時間在最近一天內的事件。

3. 讀取事件日志:使用 EventLogQuery 和 EventLogReader 來執行查詢并讀取事件記錄。

4. 提取信息:從事件記錄的屬性中提取登錄賬號、登錄時間、IP地址和登錄結果。

5. 排序輸出:將提取的信息存儲在 RemoteDesktopLoginInfo 列表中,按登錄時間降序排序后輸出。 

請確保你的程序以管理員權限運行,因為讀取 Security 日志通常需要管理員權限。

?

相關教程:

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:46:29 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved