DateTime startDate = new DateTime(2025, 2, 1); // 例如,從2025年2月1日開始
EventLog eventLog = new EventLog();
eventLog.Log = "Security"; // 可以更改為 "System" 或 "Security" 等
eventLog.Source = "Application"; // 根據需要設置,通常為應用程序名稱或"Application"
// 獲取所有條目
var entries = eventLog.Entries;
// 過濾出指定日期后的條目
var filteredEntries = entries.Cast<EventLogEntry>()
.Where(e => e.TimeGenerated > startDate)
.ToList();
int tmpNum = 0;
foreach (var entry in filteredEntries)
{
//Console.WriteLine($"Time: {entry.TimeGenerated}, Message: {entry.Message}");
if (entry.EventID == 4625)
{
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 + ("設備名稱:" + entry.MachineName) + Environment.NewLine;
//textBox1.Text = textBox1.Text + ("站點:" + entry.Site) + Environment.NewLine;
//textBox1.Text = textBox1.Text + ("來源:" + entry.Source) + Environment.NewLine;
string latestLoginUser = string.Empty;
// 解析用戶信息,這里簡單地從消息中提取用戶名
// 不同系統的事件消息格式可能略有不同,需根據實際情況調整解析邏輯
string message = entry.Message;
int startIndex = message.IndexOf("登錄失敗的帳戶:") + "登錄失敗的帳戶:".Length;
string tmpMessage = message.Substring(startIndex, message.Length - startIndex);
startIndex = tmpMessage.IndexOf("帳戶名:") + "帳戶名:".Length;
int endIndex = tmpMessage.IndexOf(Environment.NewLine, startIndex);
if (startIndex > 0 && endIndex > startIndex)
{
latestLoginUser = tmpMessage.Substring(startIndex, endIndex - startIndex).Trim();
}
textBox1.Text = textBox1.Text + ("登錄失敗的帳戶名:" + latestLoginUser) + Environment.NewLine;
string latestLoginIP = string.Empty;
startIndex = tmpMessage.IndexOf("源網絡地址:") + "源網絡地址:".Length;
endIndex = tmpMessage.IndexOf(Environment.NewLine, startIndex);
if (startIndex > 0 && endIndex > startIndex)
{
latestLoginIP = tmpMessage.Substring(startIndex, endIndex - startIndex).Trim();
}
textBox1.Text = textBox1.Text + ("登錄失敗的IP地址:" + latestLoginIP) + Environment.NewLine;
Console.WriteLine($"第 {tmpNum} 次登錄,時間:" + entry.TimeGenerated);
Console.WriteLine("登錄失敗的帳戶名:" + latestLoginUser);
Console.WriteLine("登錄失敗的IP地址:" + latestLoginIP);
//textBox1.Text = textBox1.Text + Environment.NewLine + entry.Message;
}
}