註冊表監視工具常見,但事件日誌 (特別是安全性日誌) 記錄關鍵系統活動:登入嘗試、掃描攻擊、服務啟停、權限變更。即時監控可早期發現異常,搭配郵件/簡訊通知強化防禦。
命名空間:System::Diagnostics。關鍵屬性 EnableRaisingEvents 控制是否引發 EntryWritten 事件。
#using
using namespace System::Diagnostics;
__gc class LogMonitor {
public:
void OnEntryWritten(Object* sender, EntryWrittenEventArgs* e) {
EventLogEntry* entry = e->Entry;
// 處理新日誌項目
Console::WriteLine("[{0}] {1}: {2}",
entry->TimeGenerated, entry->Source, entry->Message);
}
};
EventLog* log = new EventLog("Application"); // 或 "System", "Security"
log->EnableRaisingEvents = true;
LogMonitor* monitor = new LogMonitor();
log->EntryWritten += new EntryWrittenEventHandler(monitor, &LogMonitor::OnEntryWritten);
| 屬性 | 說明 |
|---|---|
| MachineName | 產生日誌的電腦名稱 |
| Source | 事件來源 (應用程式/服務名稱) |
| Message | 人類可讀的詳細描述 |
| EntryType | 枚舉:Information, Warning, Error, SuccessAudit, FailureAudit |
| InstanceId (Event ID) | 事件識別碼 (來源特定) |
| Data | 原始二進位資料 (如記憶體傾印) |
gcnew, EventHandler<T>),舊專案需設定 /clr:oldSyntax。EntryType 或 InstanceId 過濾關鍵事件 (如 4625 登入失敗)。System::Net::Mail::SmtpClient 發送郵件警示。