超碰人人人人人,亚洲AV午夜福利精品一区二区,亚洲欧美综合区丁香五月1区,日韩欧美亚洲系列

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

C#查看Windows系統(tǒng)最近一周遠程桌面登錄日志,并按照登錄時間降序輸出結(jié)果

admin
2025年2月26日 21:50 本文熱度 1313

為了只查詢最近一周的遠程桌面登錄日志,并按時間降序輸出結(jié)果,我們可以對代碼進行以下改進:

1. 增加時間過濾條件:在查詢中添加時間范圍,只查詢最近一周的事件。

2. 按時間降序排序:在查詢中指定按時間降序排列結(jié)果。

3. 優(yōu)化輸出:確保輸出結(jié)果按時間從新到舊排列。

以下是改進后的代碼:

//csharp

using System;

using System.Diagnostics;

using System.Linq;


namespace RemoteDesktopLogReader

{

    class Program

    {

        static void Main(string[] args)

        {

            // 定義事件日志查詢

            string logType = "Security";

            string query = "*[System[(EventID=4624 or EventID=4625) and TimeCreated[timediff(@SystemTime) <= 604800000]]]"; // 604800000毫秒 = 7天


            // 創(chuàng)建事件日志查詢

            EventLogQuery eventsQuery = new EventLogQuery(logType, PathType.LogName, query)

            {

                ReverseDirection = true // 按時間降序排列

            };


            // 創(chuàng)建事件日志讀取器

            using (EventLogReader logReader = new EventLogReader(eventsQuery))

            {

                EventRecord eventRecord;

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

                {

                    // 獲取事件ID

                    int eventID = eventRecord.Id;


                    // 獲取登錄時間

                    DateTime loginTime = eventRecord.TimeCreated.Value;


                    // 獲取登錄賬號

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


                    // 獲取登錄IP

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


                    // 獲取登錄結(jié)果

                    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. 時間范圍過濾:

   - 在查詢條件中增加了 `TimeCreated[timediff(@SystemTime) <= 604800000]`,表示只查詢最近7天(604800000毫秒)的事件。

   - `timediff(@SystemTime)` 計算事件時間與當(dāng)前時間的差值。


2. 按時間降序排序:

   - 設(shè)置 `EventLogQuery.ReverseDirection = true`,使查詢結(jié)果按時間降序排列。


3. 輸出結(jié)果:

   - 輸出結(jié)果會從最新的事件開始顯示,確保符合按時間降序的要求。


注意事項:

- 權(quán)限要求:運行此代碼需要管理員權(quán)限,因為訪問安全日志需要提升的權(quán)限。

- 事件屬性索引:`Properties[5]` 和 `Properties[18]` 分別表示登錄賬號和登錄IP,但這些索引可能因系統(tǒng)配置或Windows版本不同而變化。建議在實際運行前檢查事件日志的結(jié)構(gòu)。

- 日志量較大時:如果日志量非常大,查詢可能會較慢,可以進一步優(yōu)化查詢條件或分批次處理。


示例輸出:

Login Time: 2025-02-25 14:30:22

Account Name: DOMAIN\username

IP Address: 192.168.1.100

Login Result: Success

----------------------------------------

Login Time: 2025-02-24 10:15:45

Account Name: DOMAIN\username2

IP Address: 192.168.1.101

Login Result: Failure

----------------------------------------

...

通過這段代碼,你可以高效地獲取最近一周的遠程桌面登錄日志,并按時間降序輸出結(jié)果。


相關(guān)教程:

C#查看Windows系統(tǒng)最近一周遠程桌面登錄日志,并按照登錄時間降序輸出結(jié)果[171]
  http://29565.oa22.cn

C#讀取Windows系統(tǒng)事件日志中最近一天遠程桌面登錄信息代碼(賬號、時間、IP、結(jié)果成功或失?。凑諘r間降序輸出結(jié)果[152]
  http://29568.oa22.cn

C#從Windows系統(tǒng)事件日志中獲取遠程桌面登錄信息代碼,包括登錄賬號、登錄時間、登錄IP、登錄結(jié)果失敗或成功[180]
  http://29563.oa22.cn


該文章在 2025/2/27 12:45:55 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調(diào)度、堆場、車隊、財務(wù)費用、相關(guān)報表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點,圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務(wù)都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved