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

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

[C#]通過Windows系統(tǒng)日志查看最后一次遠(yuǎn)程桌面登錄的用戶

admin
2025年2月14日 16:59 本文熱度 1128


在C#中讀取本機遠(yuǎn)程桌面(RDP)的歷史登錄信息通常涉及到讀取Windows事件日志,因為Windows操作系統(tǒng)會將遠(yuǎn)程桌面會話的登錄信息記錄在事件日志中。你可以使用System.Diagnostics.EventLog類來訪問這些日志。

以下是一個基本的步驟和示例代碼,展示如何使用C#來讀取本機的遠(yuǎn)程桌面連接歷史:

步驟 1: 添加必要的命名空間

在你的C#文件中,確保添加了System.Diagnostics命名空間:

using System;

using System.Diagnostics;

步驟 2: 讀取事件日志

你可以通過查詢特定的事件日志來獲取遠(yuǎn)程桌面連接的歷史記錄。對于遠(yuǎn)程桌面連接,通常使用的是“Security”日志,其中事件ID為4624(成功登錄)或4778(遠(yuǎn)程桌面服務(wù)會話開始)。

private void button1_Click(object sender, EventArgs e)

{

    EventLog rEvent = new EventLog();

    rEvent.Log = "Security";  //"Application", "Security", "System"

    //rEvent.MachineName = "dn0351";

    int tmpNum = 0;

    foreach (EventLogEntry entry in rEvent.Entries)

    {

        if (tmpNum>5) { return; }

        //if (entry.EventID == 4778 && checkMessageLogin(entry.Message))

        //if (entry.EventID == 4624 || entry.EventID == 4778)

        if (entry.EventID == 4778)

        {

            tmpNum++;

            Console.WriteLine($"第 {tmpNum} 次登錄");

            textBox1.Text = textBox1.Text + Environment.NewLine;

            textBox1.Text = textBox1.Text + Environment.NewLine;

            textBox1.Text = textBox1.Text + Environment.NewLine;

            textBox1.Text = textBox1.Text +$"第 {tmpNum} 次登錄:" + Environment.NewLine;

            textBox1.Text = textBox1.Text + ("時間:" + entry.TimeGenerated) + Environment.NewLine;

            textBox1.Text = textBox1.Text + ("索引:"+entry.Index) + Environment.NewLine;

            textBox1.Text = textBox1.Text + ("ID:" + entry.EventID) + Environment.NewLine;

            textBox1.Text = textBox1.Text + ("用戶名:" + entry.UserName) + Environment.NewLine;

            textBox1.Text = textBox1.Text + ("設(shè)備名稱:" + entry.MachineName) + Environment.NewLine;

            textBox1.Text = textBox1.Text + ("站點:" + entry.Site) + Environment.NewLine;

            textBox1.Text = textBox1.Text + ("來源:" + entry.Source) + Environment.NewLine;

            textBox1.Text = textBox1.Text + ("所有信息:" + entry.Message) + Environment.NewLine;

            //textBox1.Text = textBox1.Text + Environment.NewLine + entry.Message;

        }

    }

}


public Boolean checkMessageLogin(String Msg)

{

    Regex check = new Regex(@"登錄類型:\s*(?:2|10)", RegexOptions.IgnoreCase);

    if (check.IsMatch(Msg))

    {

        return true;

    }

    else

    {

        return false;

    }

}

注意事項:

  1. 權(quán)限:運行此代碼的應(yīng)用程序需要有足夠的權(quán)限來讀取安全日志。通常,這意味著你的應(yīng)用程序需要以管理員權(quán)限運行。

  2. 篩選條件:你可以調(diào)整查詢條件來過濾出特定的登錄嘗試,例如基于用戶名、計算機名或時間范圍。例如,使用EventID=4624 AND UserName='Administrator'可以過濾出特定用戶的登錄嘗試。

  3. 性能考慮:頻繁讀取事件日志可能會影響系統(tǒng)性能,特別是在日志條目非常多的情況下??紤]在必要時使用,并優(yōu)化查詢條件。

示例:使用更具體的查詢條件

如果你只對特定用戶或特定時間的登錄嘗試感興趣,可以修改查詢字符串:

if (entry.EventID=4624 && entry.UserName=="Administrator" && entry.TimeGenerated > "2025-1-20" && entry.EntryType == EventLogEntryType.Error)
{
 // 示例:查詢特定用戶自2020年12月1日以來的登錄嘗試
}

確保替換日期和時間以符合你的需求。

通過以上方法,你可以有效地在C#中讀取和分析本機的遠(yuǎn)程桌面歷史登錄信息。


該文章在 2025/2/14 18:29:15 編輯過
關(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